Git创建一个分支:
- 假设我现在在Develop分支上:
git checkout -b develop_1
那么通过这行命令,我就在本地新建了一个develop_1分支;
- 接下来,如何将该分支推送到远程:
git push -u origin develop_1
这样,其他人通过
git fetch origin
获取远程更新,就可以下载clone该条分支的代码,然后合作开发一些东西了
- 那么如何删除一条本地分支和其对应的远程分支了
首先删除本地分支
git branch -d develop_1
就删除了本地的develop_1分支
那么接下来删除其对应的远程分支:
git push --delete origin develop_1
这样就完成了
- 在master主干,要合并develop分支:
git merge --no-ff -m "merge with develop" develop
- 清理远程分支,把本地不存在的远程分支删除
git remote prune origin
- 将远程分支live_video 获取到本地 live_video
git checkout -b live_video origin/live_video
- 在一个分支之上,进行打标签操作
git tag v1.0
即打了一个v1.0的标签.
tag是对历史一个提交id的引用,如果理解这句话就明白了
使用git checkout tag即可切换到指定tag,例如:
git checkout v0.1.0
切换到tag历史记录会处在分离头指针状态,这个修改是很危险的,在切换回主线时如果没有合并,之前的修改提交基本都会丢失,如果需要修改可以尝试
git checkout -b branch tag
创建一个基于指定tag的分支
- 推送本地分支tag到远程
git push --tags
- 删除一个本地tag
git tag -d v1.1
- 删除远程tag
git push origin --delete tag V1.1
- Git忽略规则,git中忽略掉某文件不提交,可以修改.gitignore来实现,每一行都是一个忽略规则,举例:
此为注释 – 将被 Git 忽略
- *.sample # 忽略所有 .sample 结尾的文件
- !lib.sample # 但 lib.sample 除外
- /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
- build/ # 忽略 build/ 目录下的所有文件
- doc/*.txt # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt
- .gitignore规则不生效的解决办法
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
- 若A分支需要合并B分支的文件file-01,其他B分支文件不想合并到A,在A分支下执行如下命令即可
git checkout B file-01
- 待续......
参考链接
- https://www.cnblogs.com/zhangxiaoliu/p/6008038.html
- https://www.cnblogs.com/xulingfeng/p/5864041.html
- https://edison-cool911.iteye.com/blog/2325747
- 学习git最佳教程,没有之一: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- http://marklodato.github.io/visual-git-guide/index-zh-cn.html
- https://learngitbranching.js.org/
- http://rogerdudler.github.io/git-guide/index.zh.html
- https://www.cnblogs.com/kevingrace/p/5690241.html
- http://www.ruanyifeng.com/blog/2012/07/git.html
- https://git-scm.com/book/zh/v2 (个人感觉这篇是最全的)
网友评论