提交 pull request 的最佳实践
1. 首先 fork 仓库
添加一个自己的仓库副本
2. 添加 upstream source
git remote add upstrem URL
3. 创建一个 dev 分支
git checkout -b dev
git commit -m "add new feature"
4. 开发及测试完成后 Rebase
git fetch upstream
git rebase upstream/master
5. 推送本地开发分支
git push origin dev
6. 发起 pull request
在 github 上发起 pull request,选择 dev 分支,填好对应的 description
Git回滚代码到某个 commit
回退命令:
git reset --hard HEAD^ #回退到上个版本
git reset --hard HEAD~3 #回退到前 3 次提交之前,以此类推,回退到 n 次提交之前
git reset --hard commit_id #退到/进到指定 commit
回退版本后直接 push 会出错,需要使用 –force 强制 push
git push origin master --force
clone 某个分支
git clone -b branch
合并多个 commit
git rebase -i commit_id # 会合并此次提交之后所有的提交为一个提交
git rebase -i commit_1 commit_2 # 会合 commit_1 到 commit_2 之间的记录 不包含 commit_1 包含 commit_2
git rebase -i HEAD~3 # 合并最近的 3 个 commit
git rebase --continue # 解决冲突后,继续执行 rebase
git rebase --abort # 终止合并
常用的 commit 操作命令
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
合并 commit 后需要使用 –force 强制 push 到远程
git push origin master --force
取消本地文件 track
git rm -r --cached . # 取消所有文件的跟踪,保留文件
git rm -r --f . # 取消所有文件的跟踪,删除本地文件
git rm --cached test.file # 取消 test.file 的跟踪,保留文件
git rm --f test.file # 取消 test.file 的跟踪,删除本地文件
添加 test.file
到 .gitignore 之后提交