查看远程所有分支
$ git branch -a
创建分支
git branch [branchname]
新建分支并切换到指定分支
git checkout -b master origin/master
git checkout -b 本地分支名 origin/远程分支名
使用上面的命令可以创建分支名并且关联到远程的分支,但是远程分支存在git push多次,发现关联分支的本地代码不是最新的,只需要在git pull 后面添加origin master 就能获取最新代码。
拉取远程分支代码
$ git pull origin master From github.com:xxxx@gamil.com/xxxxx * branch master -> FETCH_HEAD Already up to date.
删除本地分支
删除本地已合并的分支:
$ git branch -d [branchname]
某些情况下可以用
$ git branch -D [branchName] (使用时应注意是否已合并)
删除远程分支
$ git push origin --delete [branchname]
提示删除了一个名为 201804019-test-files 的分支,
注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支
如果发生以下错误:
error: unable to delete ‘origin/xxxxxxxx-fixbug’: remote ref does not exist
error: failed to push some refs to ‘git@github.com:xxxxxxxx/xxxxxxxxxx.git’
解决办法: git checkout xxxxx-fixbug 切换到当前分支上, 然后再 进行 git push --delete origin origin/xxxxx-fixbug
此时将不会再发生错误 。
将本地分支推送到远程
$ git push -u origin dev:release/caigou_v1.0
git push <远程主机名> <本地分支名>:<远程分支名>
Git冲突
1、stash
通常遇到一个问题就是本地仓库你可以直接commit你的修改,但是我这次不想commit,而又想获取远程仓库的最新代码。看看git stash是如何做的。
git stash
git pull
git stash pop
接下来diff一下此文件看看自动合并的情况,并作出相应修改。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
2、放弃这一次本地仓库的修改,直接覆盖之
git reset --hard
git pull