Git-远程仓库管理

远程仓库
  • 什么是远程仓库
    • 要参与任何一个 Git 项目的协作, 必须要了解该如何管理远程仓库。 远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分 支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用
  • 远程仓库和git区域的组成
和远程仓库之间传递文件常见的操作指令
  • 操作本地的git版本库的内容
    • 1、我们在本地目录中新增一个文件
    • 2、使用 git add 命令将新文件推送到暂存区
    • 3、使用 git commit 命令将文件推送到本地仓库
  • 和远程仓库之间进行的常用操作
    • 1、git clone   远程ssh地址 
      • 可以将一个远程仓库,完全的移植到本地,并创建一个一模一样的本地仓库,一般用来项目最开始进行代码拷贝
    • 2、git push  origin  本地分支名: 远程分支名
      • 将本地分支合并到远程分支
      • 如果省略远程分支将会将分支合并到远程的同名分支上
      • 如果省略本地分支,将会删除远程的该分支
    • 3、git pull origin   远程分支名:本地分支名
      • 将origin厂库的分支拉取并合并到本地的my_test分支上
      • 如果省略本地分支,将会自动的合并到当前分支上
    • 4、git fetch origin  远程分支名
      • 获取远程分支的提交记录,但是不会自动的进行合并的操作,只是对远程的提交进行拉取
    • 5、git checkout  --<文件>
      • 可以将本地仓库文件拉到本地工作目录中
    • 6、git remote -v
      • 查看远程仓库
    • 7、git remote rm [name]
      • 删除远程仓库
    • 8、git remote set-url --push [name] [newUrl]
      • 修改远程仓库
    • 9、git remote add [name] [url]
      • 添加远程仓库
  • Git常用命令汇总
    • git branch 查看本地所有分支
    • git status 查看当前状态
    • git commit 提交
    • git branch -a 查看所有的分支
    • git branch -r 查看本地所有分支
    • git commit -am "init" 提交并且加注释
    • git remote add origin git@192.168.1.119:ndshow
    • git push origin master 将文件给推到服务器上
    • git remote show origin 显示远程库origin里的资源
    • git push origin master:develop
    • git push origin master:hb-dev 将本地库与服务器上的库进行关联
    • git checkout --track origin/dev 切换到远程dev分支
    • git branch -D master develop 删除本地库develop
    • git checkout -b dev 建立一个新的本地分支dev
    • git merge origin/dev 将分支dev与当前分支进行合并
    • git checkout dev 切换到本地dev分支
    • git remote show 查看远程库
    • git add .
    • git rm 文件名(包括路径) 从git中删除指定文件
    • git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
    • git config --list 看所有用户
    • git ls-files 看已经被提交的
    • git rm [file name] 删除一个文件
    • git commit -a 提交当前repos的所有的改变
    • git add [file name] 添加一个文件到git index
    • git commit -v 当你用-v参数的时候可以看commit的差异
    • git commit -m "This is the message describing the commit" 添加commit信息
    • git commit -a -a是代表add,把所有的change加到git index里然后再commit
    • git commit -a -v 一般提交命令
    • git log 看你commit的日志
    • git diff 查看尚未暂存的更新
    • git rm a.a 移除文件(从暂存区和工作区中删除)
    • git rm --cached a.a 移除文件(只从暂存区中删除)
    • git commit -m "remove" 移除文件(从Git中删除)
    • git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
    • git diff --cached 或 $ git diff --staged 查看尚未提交的更新
    • git stash push 将文件给push到一个临时空间中
    • git stash pop 将文件从临时空间pop下来
  • 常用功能
    • 将本地项目给提交到服务器中
      • git remote add origin git@github.com:username/Hello-World.git
      • git push origin master
    • 本地与服务器端同步
      • git pull
    • 将本地分支推送到服务器上去
      • git push (远程仓库名) (分支名)
      • git push origin serverfix:awesomebranch
    • 从远程获取最新版本到本地,不会自动merge
      • git fetch
    • (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端
      • git commit -a -m "log_message"
    • 从主分支master创建branch_0.1分支
      • git branch branch_0.1 master
    • 将branch_0.1重命名为branch_1.0
      • git branch -m branch_0.1 branch_1.0
    • 切换到branch_1.0/master分支
      • git checkout branch_1.0/maste
  • 完整的提交过程实例
    • mkdir WebApp
    • cd WebApp
    • git init
    • touch .gitignore
    • git add .gitignore
    • touch README
    • git add README
    • git commit -m 'first commit'
    • git remote add origin git@git.xxx.cn:application/test.git
    • git push -u origin master
使用Github
  • 创建远程仓库
    • 点击创建远程仓库
    • 创建一个新的远程仓库
    • 创建成功后的界面
  • 添加github的ssh账户
    • github和本地版本仓库是通过ssh进行通讯的,所以需要配置ssh
    • 点击New SSH key 给github账户添加ssh账户
    • 在ubuntu的家目录中先删除.ssh文件
      • rm -rf ~/.ssh
    • 修改git的使用用户和邮箱,提交的时候,将会永久性的记录提交人的信息
    • 生成密钥,提供给github注册使用;
    • 进入主目录下的.ssh 文件夹,复制id_rsa.pub  的内容
    • 将公钥添加到github的注册ssh用户中的key中
  • 克隆项目/文件
    • 进入远程版本仓库
    • 复制远程仓库的地址
    • 在命令行中clone刚才复制地址的内容到当前目录
  • github上传分支
    • 目前的状态:
      • 现在我们已经将github中的项目移植到了本地主机中,现在本地的项目和github上的完全一样,现在我们先通过在本地创建分支,然后再同步到github上
    • 创建一个分支:
    • 创建一个文件,然后进行一次版本提交
    • 推送分支到github上
    • 在github网页上浏览提交分支后的结果
  • 跟踪远程分支
    • 将本地分支跟踪服务器分支
      • git branch --set-upstream-to=origin/远程分支名称 本地分支名称
        • 本地分支的内容将跟踪远程的分支,之后使用pull  push  等将会自动的从跟踪的分支上拉取或上传
      • git  pull  origin    将自动同步跟踪分支到远程分支最新的提交
  • 获取\上传远程的分支
    • 从远程分支上拉取代码
      • git pull orgin 远程分支名:本地分支名称
        • 使用上述命令会把远程分支上的代码下载并合并到本地所在分支
        • 如果本地分知名和远程分知名一样,那么可以只写远程分支名
    • 将分支上传到远程仓库
      • git remote add origin 仓库地址      在本地添加一个名为origin的远程仓库
      • git push -u origin master
  • 错误处理
    • 提示错误信息如下:
      • sign_and_send_pubkey: signing failed: agent refused operation
    • 错误原因:
      • 在 ssh 账户中没有加入新生成的密钥
    • 解决:
      • 将密码加入 ssh 账户,逐条运行如下命令
      • eval "$(ssh-agent -s)"
      • ssh-add


刘小恺(Kyle) wechat
如有疑问可联系博主