git工作中常用的命令

2021-09-24 04:28:56 字數 4543 閱讀 5805

注意修改了這些config後,需要exit後才能生效

git config --global core.editor "vim" 

git config --global alias.co checkout

git config --global alias.ci commit

git config --global alias.st status

git config --global alias.br branch

git config --global alias.hist 'log --graph --format=format:"%c(red)%h%c(reset) %c(yellow)%ad%c(reset) | %s %c(green)\[%an\]%c(reset)%c(bold blue)%d%c(reset)" --abbrev-commit --date=short'

git config --global alias.root 'rev-parse --show-toplevel'

git config --global alias.alias '!git config --global --list | grep ^alias'

git config --global alias.head 'rev-list -n1 --abbrev-commit head' 

git config --global color.ui auto  

git config --global -l  可以檢視我的配置

$ git checkout -b dev   #switched to a new branch 'dev'

git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令:

$ git branch dev    #建立 branch dev

$ git checkout dev  #switched to branch 'dev'

$ git branch命令會列出所有分支,當前分支前面會標乙個*號。

$ git add readme.txt 

$ git commit -m "branch test"

現在,dev分支的工作完成,我們就可以切換回master分支:

$ git checkout master  #switched to branch 'master'

$ git merge dev  #把dev分支的工作成果合併到master分支上

git checkout -- file可以丟棄工作區的修改

git merge命令用於合併指定分支到當前分支。合併後,再檢視readme.txt的內容,就可以看到,和dev分支的最新提交是完全一樣的。

注意到上面的fast-forward資訊,git告訴我們,這次合併是「快進模式」,也就是直接把master指向dev的當前提交,所以合併速度非常快。

當然,也不是每次合併都能fast-forward,我們後面會講其他方式的合併。

合併完成後,就可以放心地刪除dev分支了:

$ git branch -d dev   #deleted branch dev.

刪除後,檢視branch,就只剩下master分支了:

$ git branch

* master

因為建立、合併和刪除分支非常快,所以git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。

git鼓勵大量使用分支:

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

注意:切換分支前需要提交修改的**,然後再切換分支,不然會丟失工作區**修改

$ git add readme.txt 

$ git commit -m "branch test"

$ git add test.txt

$ git commit -m "add test.txt"

提交了過後再刪除檔案這樣,如果沒有提交可以直接rm file來刪除新增的檔案

$ git rm test.txt刪除檔案

$ git commit -m "remove test.txt"#把刪除的提交上去

git log --graph命令可以看到分支合併圖

git log --graph --pretty=oneline --abbrev-commit   

gitk

在gerrit上如何cherry pick**

--------[cherry-pick]---------------------

git cherry-pick

-------------------------------

git mergetool

git cherry-pick --continue  

cherrypick 相關的命令

------------[rebase conflict]--------------------

git mergetool

git rebase --continue  

# 刪除 untracked files

git clean -f

# 連 untracked 的目錄也一起刪掉

git clean -fd

# 連 gitignore 的untrack 檔案/目錄也一起刪掉 (慎用!一般這個是用來刪掉編譯出來的 .o之類的檔案用的)

git clean -xfd

# 在用上述 git clean 前,建議加上 -n 引數來先看看會刪掉哪些檔案,防止重要檔案被誤刪

git clean -nxfd

git clean -nf

git clean -nfd

--------[cherry-pick]---------------------

git cherry-pick

----------- [ set yoursream: master ]---------------------

git br --set-upstream-to origin/master

--------[ git show ]---------------------

git show

--------[ untracked files ]---------------------

git clean -f 

--------[ untracked ]---------------------

git clean -fd 

--------[ gitignore  untrack ]---------------------

git clean -xfd 

--------[ git clean ]---------------------

git clean -nxfd 

git clean -nf 

git clean -nfd

--------[hard commit-id]---------------------

git reset --hard commit-id

??:git reset --hard ca50b7be070

--------[revert commit]---------------------

git revert

git revert ca50b7be070

--------[update]---------------------

git reset head^

git co commit-id

git co -b ***xx

git st

git hist #可以檢視提交歷史,提交序列號

git show 7a197535ebc --name-only   看這個版本提交了什麼檔案

git show 7a197535ebc tools/scripts/misc/coding_guidelines_checker.py

第一步是用

git add

把檔案新增進去,實際上就是把檔案修改新增到暫存區;

第二步是用

git commit

提交更改,實際上就是把暫存區的所有內容提交到當前分支。

場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令

git checkout -- file。

場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時,想丟棄修改,分兩步,第一步用命令

git reset head

,就回到了場景1,第二步按場景1操作。

版本回退

一節,不過前提是沒有推送到遠端庫。

git reset --soft head^

git log -5

commit    ***************  會看到這行id號

git reset --hard commit_id //退到/進到 指定commit的sha碼

工作中常用git命令

1.commit push 已經更新到遠端倉庫 對於已經把 push到線上倉庫,你回退本地 其實也想同時回退線上 回滾到某個指定的版本,線上,線下 保持一致.你要用到下面的命令 git revert revert 之後你的本地 會回滾到指定的歷史版本,這時你再 git push 既可以把線上的 更新...

工作中常用的git命令

git的使用 配置使用者名稱 sudo git config system user.name ryan 配置使用者郵箱 sudo git config global user.email ryan 163.com git init 初始化倉庫 git status 檢視本地倉庫狀態 git add...

git工作中常用的命令

git init 把當前目錄變成git可以管理的倉庫 git status 可以讓我們時刻掌握倉庫當前的狀態 git diff 顧名思義就是檢視difference git reset 回退版本 git reset head 檔名 可以把暫存區的修改撤銷掉 unstage 重新放回工作區 git r...