git 常用且实用的操作整理

1、修改用户名、邮箱

// 全局修改
git config --global user.name "xxx"
git config --global user.email "[email protected]"


// 针对某个仓库修改
git config user.name "xxx"
git config user.email "[email protected]"

注意:这里的修改只对后续的提交有效。

2、使用 log 查看提交记录

git log -2 // -2 代表查看最后 2 条记录

git log 的提交历史排序选项

git log 命令显示提交历史时,有两种排序方式: --date-order 和 --topo-order 。

默认的排序方式为 --topo-order 。

--topo-order  选项导致同一个分支上的提交在历史记录中显示尽量保持连续,在查看提交历史的时候,比较方便。


--date-order  选项导致有多个分支同显示的时候,提交按照时间戳顺序显示,最新的提交显示在最上面,在多个分支上同时进行开发的时候,比较方便。

3、修改最后一次 commit 的信息

3.1 修改 commit 注释信息

git commit --amend 

出现修改注释信息的界面, 输入 i 进入修改模式,修改好注释后,按 Esc 键 退出编辑模式,输入 :wq 保存并退出。

3.2 修改作者、邮箱

// 只修改作者、邮箱
git commit --amend --author="{username} <{email}>" --no-edit


// 同时修改注释信息、作者、邮箱
git commit --amend --author="{username} <{email}>" 



git commit --amend --author=“xxx <[email protected]>”

TIP:更多关于修改历史commit的操作可以参考这篇博客:Git 使用 rebase 修改历史提交记录_git 修改提交记录_不怕麻烦的鹿丸的博客-CSDN博客

4、push 本地仓库更改到远程仓库

git push --force origin master // 强制push

注意:当仓库是多人操作时,可能会覆盖别人push 的代码,请谨慎操作!

5、跟踪远程分支

5.1 远程同名分支

如果远程新建了一个分支,本地没有该分支,使用以下命令 ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name

git checkout --track origin/branch_name

// –track可以简写成-t
git checkout -t origin/branch_name


git checkout --track origin/test

5.2 远程不同名分支

如果想新建一个本地分支不同名字,同时跟踪一个远程分支可以用以下命令

git checkout -b new_branch_name origin/branch_name


git checkout -b myTest origin/test

也可以使用以下命令来达到同样效果,如果没有指定作用于哪个branch,则会作用于当前branch。 

git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]



// 追踪远程分支 origin/test 到本地分支 myTest,如果远程没有 test 会报错,需要先创建远程分支
git branch --set-upstream-to=origin/test myTest

git branch -u origin/test myTest

注意:建议跟踪分支和被跟踪远程分支同名。

6、本地分支提交到远程分支并跟踪

如果本地新建了一个分支 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

7、使用 git reflog 恢复代码

有时候可能会由于某些误操作,某些 git 命令会从您的视图中删除提交,例如:git reset 可能会从您当前的分支中删除提交,因此这些提交会从您的视图中消失,修改提交也会从您的视图中删除提交。

这时候可以使用 git reflog 命令,该命令允许您通过显示 HEAD 指针移动来查找此类提交。它将向您显示 git 最近创建的所有提交。这包括临时创建的提交,或者已经被删除的,在分支上不再可见的提交

// 查看 HEAD 引用的完整更改历史记录
git reflog
 
 
# <output>
cf616d4 HEAD@{1}: reset: moving to 45ca2045be3aeda054c5418ec3c4ce63b5f269f7
# ... snip ...
1f1a73a HEAD@{2}: commit: More chaanges - typo in the commit message
45ca204 HEAD@{3}: commit: These are new changes
cf616d4 HEAD@{4}: commit (initial): Initial commit
# </output>
 
 
// 使用 reset 指定 commitID 来选择要恢复的记录
git reset --hard 1f1a73a

猜你喜欢

转载自blog.csdn.net/qq_31851435/article/details/129725588