- 查看本地提交
git branch -a
- 创建分支
git branch test
- 分支推到远程分支
git push origin test
- 分支切换到
git checkout test
- 拉取远程分支,到本地,并创建新的分支
git checkout -b test remotes/origin/test
- 删除本地分支
git branch -d test
删除远程分支
git push origin --delete test
- merge 其他提交到本分支
git cherry-pick 17dfae0cc1d474a0b00b7254b2d1cb6e23f9bf02
- 本地提交推到远程
git push
- 本地提交在远程拉取
git pull
- 查看所有tag
git tag
- 切换远程tag 到本地
git checkout v0.1.0
一般的做法是建立一个本地分支,基于某一个 tag : git checkout -b tag0.7.9 k0.7.9
- 将一个项目的的某次提交后的提交打成补丁合并到现在的项目上
git format-patch -s fc3e5d5d97e8ffb6cb442a2e215e9b5ce04d76ed
会生成下面的提交
0001-ffmpeg-update-to-ff3.2-ijk0.7.6-20170324-001.patch
0002-ijkplayer-android-support-soundtouch.patch
0003-ijkplayer-stop-soundtouch-translate-when-abort.patch
0004-NEWS.md-k0.7.9.patch
0005-k0.7.9.patch
- 将patch copy到要合并的目录下
1.先检查patch文件:
git apply --stat newpatch.patch
- 检查能否应用成功
git apply --check newpatch.patch
3.打补丁
git am --signoff < newpatch.patch**
- 查看本地分支和远程分支的对应关系
git branch -vv
- 查看分支url
git remote -v
- 添加远程分支
git remote add name url
- 拉取主分支最新代码
git fetch name
- 删除远程仓库里面的某一个文件
git rm -r --cached filename.cpp ;
git commit -m "delete filename.cpp" ;
git push;
- 合并
git merge .....
- 开发某一个阶段的版本打tag(就是为SHA为0c3b62d的这次提交打了1.0发行版的tag)
git tag -a <版本号> -m "<备注信息>"
git tag -a 1.0.0 0c3b62d -m "Release Edition v1.0.0"
- 把分支的代码 (dev) 合并到master分支上
git checkout master // 首先切换到master分支上
git pull origin master //如果是多人开发的话 需要把远程master上的代码pull下来
git merge dev //dev分支的代码合并到master上
- git回退到某个版本并提交,回退到分支某个版本
git reset -- hard c88173be7b521fcbe88c5be4fc1d3889e52226ae//要回退的分支版本
- 查看分支当前版本
git rev-parse HEAD
- 提交回退的版本
git push -f (注:强制提交后,当前版本后面的提交版本将会删掉!)
- 撤销git add 错误的文件
git status //先看一下add 中的文件
git reset HEAD //如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD //XXX/XXX/ 对某个目录下的所有文件进行撤销了
git reset HEAD //XXX/XXX/XXX.cpp 对某个文件进行撤销了
- merge 远程分支 feature_aaa
git merge origin/feature_aaa