Config
最佳实践
|
|
设置 GitHub 代理
|
|
pull.rebase
|
|
Tips
将修改的已跟踪文件添加到暂存区
|
|
修改最新的 commit 信息
|
|
拉取最新远程分支并合并
|
|
-p –prune, -r –rebase
Reset
-
重置
git add .状态1git reset -
撤销最新的 commit
1git reset --soft HEAD^ -
撤销多个 commit
1git reset --soft HEAD~n
Reflog
通过 git reflog 来查看所有的 commit,包括被 reset 掉的 commit。
|
|
Cherry-pick
通过 git cherry-pick 来将某个 commit 应用到当前分支上。
|
|
Diff
|
|
path/to/file可选,如果不指定则会比较整个项目的差异。
垃圾回收
清理无用的对象,优化存储空间和性能。
|
|
Revert
|
|
Revert merge commit
|
|
被 revert 过的分支合并若需要再次合并到主分支,需要将之前的 revert 也 revert 掉,否则该合并会不完整。
git log --oneline | grep "Revert" | grep "commit message"可以通过这个命令来筛选出之前的 revert commit hash。
Branch Rename
|
|
更改 .gitignore 后让 Git 忽略已经被跟踪的文件
|
|
Squash
|
|
pick -> squash,只保留第一个 pick,其他的 squash。
开发流程
每次新的开发都需要从 main 分支新建一个分支,测试通过后发起 Pull request,由其他成员进行 Code review,通过后合并到 main 分支。
非必要情况下,不要直接在 main 分支上进行开发。main 分支采取分支保护并需要线性历史,禁止直接 push,只能通过 Pull request 合并, 且至少需要一个成员的 Approval 才能合并。
备注当然不一定只能从 main 分支新建分支,也可以从其他分支新建分支,但是最终都要合并到 main 分支。
develop
git switch -c <new-branch-name>- Coding
git add .git commit -m "commit message"git push [--set-upstream] origin <new-branch-name>- 在 develop 分支上发起 Pull request
- Code review
- Create a merge commit 到 develop 分支