一开始,我的git(大概)流程

  1. git status
  2. git branch
  3. git add .
  4. git commit -m "myProject_machuang"
  5. git push origin machuang

一开始工作的时候,可能轮不到你合并,这些命令已经满足基本版本控制需求了 :-)

查看远程分支

git branch -a

拉取已经提交的分支

root@vagrant-ubuntu-trusty-64:/vagrant/operate# git fetch
remote: Counting objects: 101, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 101 (delta 76), reused 61 (delta 40)
Receiving objects: 100% (101/101), 21.86 KiB | 0 bytes/s, done.
Resolving deltas: 100% (76/76), completed with 25 local objects.
From git.4000669696.com:myProject
   64f7dcf..8059f6b  sunjiankui -> origin/sunjiankui
 * [new branch]      wanglei    -> origin/wanglei
   ec419a7..eb2fb9a  wangze     -> origin/wangze
 * [new branch]      wujian     -> origin/wujian
   e13f70d..83761b7  zhangyuchao -> origin/zhangyuchao

合并

root@vagrant-ubuntu-trusty-64:/vagrant/operate# git merge origin/sunjiankui

合并后,检查冲突:

root@vagrant-ubuntu-trusty-64:/vagrant/operate# git diff

有冲突会爆出来,比如:

CONFLICT (content): Merge conflict in app/Http/routes.php

打开编辑器,处理了冲突之后,添加,提交被修改的文件到暂存区。

root@vagrant-ubuntu-trusty-64:/vagrant/operate# git add .
root@vagrant-ubuntu-trusty-64:/vagrant/operate# git commit -m "merge wanglei"
[machuang 3851ca1] merge wanglei
root@vagrant-ubuntu-trusty-64:/vagrant/operate# git diff
root@vagrant-ubuntu-trusty-64:/vagrant/operate# git status
On branch machuang
nothing to commit, working directory clean

合并完所有的分支,这是可以提交到主分支origin/master了。

git push origin machuang:master

注意,如果合并(git merge)的时候有冲突,即使是缓存冲突,git就不会自动提交,怎么办?

需要手动add,commit,然后工作区干净了,就可以进行push操作了。另外这个命令可以查看发生冲突的地方:

git diff
//vi 处理冲突过程
git add .
git commit -m 'anything is ok! 2016_11_10'

如果自己的远程分支推不上去,怎么办?

可以先推到其他的一个分支,让master来合并。

git push origin machuang:ma

删除远程分支命令:

git push origin --delete machuang

注意:

1.开发之前要记得先拉取origin/master的最新版本,这样写的东西不会和origin/master产生冲突。
2.有时候推到自己的远程分支上,推不上去,可能真的是网速太慢的问题。
3.当在服务器上调试完了之后,不需要服务器上的修改,遥测小的时候,一条命令还原它:

git checkout -- .