git的一些学习记录
目录
1 Git 操作
- git远程与本地的操作
- git重新设置远程仓库地址
git remote rm origin git remote add origin 你的新远程仓库地址
- git删除远程分支
git push origin --delete Chapater6
- git 建立本地分支与远程分支的关联
git branch –set-upstream 本地新建分支名 origin/远程分支名
- git重命名分支
git branch -m old new
- git拉取远程分支
- git重新设置远程仓库地址
- git放弃本地修改
- 未使用git add缓存代码
git checkout -- filepathname ## 放弃指定文件的缓存 git checkout . ## 放弃所有的文件修改
- 已经使用git add缓存代码
git reset HEAD filepathname ## 放弃指定文件的缓存 git reset HEAD . ## 放弃所有的文件修改
- 已经用 git commit提交代码
git reset --hard HEAD^ ## 回到上一次commit的状态
- 未使用git add缓存代码
- git使用远程仓库代码覆盖本地代码
git fetch --all git reset --hard origin/master git pull
2 git rebase
3 git cherry-pick
git cherry-pick
可以将一个或多个已经存在的提交应用到其他分支。这个命令会创建一个新的提交,其效果等同于被cherry-pick的提交。
有以下三个使用场景:
将bug修复应用到其他分支
:在开发分支上修复了一个bug,并创建了一个包含修复的提交。然后需要将修复应用到生产分支,但是不想应用开发分支上的其他提交。从一个废弃的分支获取有用的提交
:将废弃分支上的有用提交应用到其他分支。撤消某次提交
:使用git cherry-pick
配合-n
参数来撤消某次提交。
3.1 具体的例子
以bug修复到其他分支为例子。现在有master
分支和dev
分支。在dev
分支上修复了一个bug,哈希值是abc123
。想将这个bug修复应用到master
分支,但是不想将dev
分支上的其他提交合并到master
分支中。
- 首先确保工作目录是干净的,可以用
git status
检查工作目录状态。 - 切换到master分支
git checkout master
- 使用
git cherry-pick
将abc123
应用到master
分支。
git cherry-pick abc123
- 如果没有冲突,
abc123
提交被master
分支。如果有冲突,git会停止cherry-pick并高速哪些文件有冲突,手动解决冲突后继续进行cherry-pick操作获取取消操作。
git cherry-pick --continue
## 或者取消
git cherry-pick --abort