// 全局修改
git config --global user.name "xxx"
git config --global user.email "[email protected]"
// 针对某个仓库修改
git config user.name "xxx"
git config user.email "[email protected]"
注意:这里的修改只对后续的提交有效。
git log -2 // -2 代表查看最后 2 条记录
git log
命令显示提交历史时,有两种排序方式: --date-order
和 --topo-order
。
默认的排序方式为 --topo-order
。
--topo-order
选项导致同一个分支上的提交在历史记录中显示尽量保持连续,在查看提交历史的时候,比较方便。
--date-order
选项导致有多个分支同显示的时候,提交按照时间戳顺序显示,最新的提交显示在最上面,在多个分支上同时进行开发的时候,比较方便。
git commit --amend
出现修改注释信息的界面, 输入 i 进入修改模式,修改好注释后,按 Esc 键 退出编辑模式,输入 :wq 保存并退出。
// 只修改作者、邮箱
git commit --amend --author="{username} <{email}>" --no-edit
// 同时修改注释信息、作者、邮箱
git commit --amend --author="{username} <{email}>"
git commit --amend --author=“xxx ”
TIP:更多关于修改历史commit的操作可以参考这篇博客:Git 使用 rebase 修改历史提交记录_git 修改提交记录_不怕麻烦的鹿丸的博客-CSDN博客
git push --force origin master // 强制push
注意:当仓库是多人操作时,可能会覆盖别人push 的代码,请谨慎操作!
如果远程新建了一个分支,本地没有该分支,使用以下命令 ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name
git checkout --track origin/branch_name
// –track可以简写成-t
git checkout -t origin/branch_name
git checkout --track origin/test
如果想新建一个本地分支不同名字,同时跟踪一个远程分支可以用以下命令
git checkout -b new_branch_name origin/branch_name
git checkout -b myTest origin/test
也可以使用以下命令来达到同样效果,如果没有指定作用于哪个branch,则会作用于当前branch。
git branch (--set-upstream-to= | -u ) []
// 追踪远程分支 origin/test 到本地分支 myTest,如果远程没有 test 会报错,需要先创建远程分支
git branch --set-upstream-to=origin/test myTest
git branch -u origin/test myTest
注意:建议跟踪分支和被跟踪远程分支同名。
如果本地新建了一个分支 branch_name,但是在远程没有,这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。无需再指定推送到哪个远端仓库和哪个远端分支。
git push --set-upstream origin branch_name
// –set-upstream 可以简写为 -u
git push -u origin branch_name
git reflog
恢复代码有时候可能会由于某些误操作,某些 git 命令会从您的视图中删除提交,例如:git reset 可能会从您当前的分支中删除提交,因此这些提交会从您的视图中消失,修改提交也会从您的视图中删除提交。
这时候可以使用 git reflog 命令,该命令允许您通过显示 HEAD 指针移动来查找此类提交。它将向您显示 git 最近创建的所有提交。这包括临时创建的提交,或者已经被删除的,在分支上不再可见的提交。
// 查看 HEAD 引用的完整更改历史记录
git reflog
#
// 使用 reset 指定 commitID 来选择要恢复的记录
git reset --hard 1f1a73a