Git多人协作维护仓库简单流程
命令:
git diff <branch name> 比较当前分支和另一个分支的区别
git merge x 将x分支合并到当前分支
git add . 或 git add -A 会提交所有修改
git commite -m ""
git branch -b x 创建新的分支
git branch 查询当前有哪些分支,以及位于哪个分支
git remote -v查看当前远程仓库
git branch -d dev 删除没有未提交内容或未合并的分支
git branch -D dev 强制删除含未提交内容或未合并的分支
...
使用
多人协作(一个简单流程)
-
通过clone克隆远程仓库
$ git clone git@github.com:michaelliao/gitskills.git
-
把自己远程仓库更新,保持与原作者仓库同步。(在GitHub网页上操作即可,即保持源仓库与自己fork的仓库内容同步)
-
把自己的本地库更新,更新方法使用如下指令
git pull origin master
以上指令可以把远程仓库的master分支,合并到当前分支
或者等价于
git fetch origin master:tmp git diff tmp git merge tmp git branch -d tmp
-
在已更新远程仓库的分支上做自己的修改(这在删除或添加文件时比较方便)。
或者将本地的其他已完成修改的分支合并到已更新远程仓库的分支上(或许有冲突需要处理)。
-
上传自己的修改
git push origin master
将本地的master分支推送到主机的master分支上
注意事项与问题处理:
- 首先,可以试图用
git push origin <branch-name>
推送自己的修改; - 如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; - 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功! - 如果
git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
- 首先,可以试图用
指令说明
-
git fetch
:相当于是从远程获取最新版本到本地,但不会自动 mergegit pull
:相当于是从远程获取最新版本并 merge 到本地 -
同步
Github fork
出来的分支 -
Git更新远程仓库代码到本地
-
添加与删除远程分支
-
添加很简单,把本地的一个远程仓库没有的分支push上去,远程仓库就会自动建立一个新的分支(详情参考部分交互命令详解笔记)
git push origin master
-
删除
serverfix
远程分支$ git push origin --delete serverfix
-