分支管理
根据现有的tag创建新的分支
创建分支
在项目中我们需要根据tag创建分支.现将创建步骤总结一下.假设在你的主分支上有一个tag为v1.0,主分支的名字为master.
获得最新仓库信息:
1
git origin fetch
根据tag创建新的分支:
1
git branch <new-branch-name> <tag-name>
补充:
1
2
3
4
5
6
7git branch branchname
//创建并切换到新分支
git checkout -b branchname
//远程分支
git push origin branchname
//查看远程分支
git branch -r例如:
git branch newbranch v1.0
. 会以 tag v1.0创建新的分支newbranch;
切换到新的分支:
1
git checkout newbranch
将本地创建的分支提交到远程仓库:
1
git push origin newbranch
现在远程仓库也会有新创建的分支啦.
删除分支
- 强制删除分支(删除本地分支(-D强制删除))
1
git branch -d <branchname>
- 删除远程分支
1
git push origin :<branchname>
tag管理
创建tag
1
2
3
4git tag -a v1.1 -m "注释"
git push origin v1.1
//查看所有tag
git tag -l删除tag(删除本地tag)
1
git tag -d v1.1
删除远程tag
1
2
3git push origin :v1.1
#也可以这样
git push origin --delete tag V1.1查看远程tag
1
git tag
撤销操作
在使用 git
过程中会出现想要撤销当前操作: merge
、 commit
等
查看提交的log
1 | git reflog |
1 | 39d4aad4 (HEAD -> Feature_v2.2.8.1, origin/Feature_v2.2.8.1) |
39d4aad4
作为基线号
Reset
reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:
1 | git checkout 【 merge 操作时所在的分支】 |
Revert
merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,用 git revert:
1 | $ git revert -m 【要撤销的那条merge线的编号,从1开始计算(怎么看哪条线是几啊?)】 【merge前的版本号】 |
撤销 revert
操作:
1 | $ git revert [撤销merge时提交的commit的版本号,这里是88edd6d] |
1 | 合并时遇到冲突想取消操作,恢复index,用git merge --abort |
merge 合并分支
合并分支一般遵循下面几个步骤即可完成合并:
- 切换到目标分支;
- 将待合并的分支拉取到目标分支(此时待合并分支的内容已经合并到本地目标分支中);
合并之后会出冲突现象,查看冲突的内容,保留必要的代码即可;解决完冲突之后,将冲突文件标记为冲突已解。
- 将合并后的内容提交到远程代码仓库。
这一步尤为重要,在使用不熟练的情况在合并未出现冲突的情况下,很容易忘记将本地内容提交到远程仓库。
查看远程分支
- 查看本地和远程仓库的所有分支:
git branch -a
; - 查看远程仓库的分支:
git branch -r
;
与远程分支同步
- 本地所有分支与远程保持同步:
git fetch --all
; - 拉取所有分支代码:
git pull --all
;
git push提交到远程报错
进行远程提交报错:
1 | Username for 'https://github.com': |
git 修改 tag 名称
1 | git tag new old |
1 | git tag v2.2.8.2_build2365 Release_v2.2.8.2_build2365 |
git 删除 tag 名称
1 | git tag -d old |
1 | git tag -d Release_v2.2.8.2_build2365 |
拉取远程分支(同步远程分支到本地)
1 | git fetch -p |
删除报错分支
1 | git branch -D * |
检出报错分支
1 | git checkout * |