Git常用命令

2021-07-10 21:55:00 字數 3615 閱讀 6014

工作區:電腦裡能看到的目錄,你修改檔案的地方

版本庫:工作區有乙個隱藏目錄.git,是git的版本庫,版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head。

1、配置名字、email位址和ssh key

$ git config --

global user.name "your name"

$ git config --

global user.email "your email"

// --global表示你這台機器上所有的git倉庫都會使用這個配置

$ ssh-keygen

-t rsa -c

"[email protected]"

//在github中新增ssh key-->貼上id_rsa.pub檔案的內容

2、初始化本地git倉庫

$ git init                 //把這個目錄變成git可以管理的倉庫,如果不是空目錄,你需要把該目錄下的所有檔案新增到倉庫
3、檢視工作區當前版本狀態$ git status 1.txt4、新增檔案到倉庫

$ git add

1.txt//可以一次新增多個檔案,用空格隔開

$ git add . //將當前目錄下的檔案全部新增到暫存區

$ git commit -m "1.txt建立"

5、檢視檔案變更:

git diff 1.txt暫存區的檔案commit到分支上後暫存區仍然留有檔案,diff就是比較工作區和暫存區的不同

git diff --cached比較的是版本庫和暫存區

git diff head -- 1.txt比較工作區和版本庫的區別

6、版本回退

版本回退只會回退到commit時的狀態,commit後的修改會丟失。

$ git log檢視提交日誌

在git中,用head表示當前版本,上乙個版本就是head^,上上乙個版本就是head^^,往上100個版本寫成head~100,回退到上乙個版本1.1,就可以使用git reset命令:$ git reset --hard head^

回到當前版本git reset --hard head,此時,工作區和暫存區的修改將被刪除,回到最近的一次提交,但未追蹤的檔案和目錄修改不會刪除,將未追蹤的檔案目錄add到暫存區就會刪除。–hard表示該版本之後追蹤的修改都會被刪除。

重置到某個版本,並且不丟失該版本之後commit的修改git reset --soft commitid,之後版本的修改會回退到暫存區,工作區的修改也不會丟失,可以繼續add。

如果你已經關掉了當前視窗,commit id找不到了,還可以用$ git reflog來檢視你的每一次命令

git reflog 可以檢視所有分支的所有操作記錄(commit和reset的操作),包括已經被刪除的commit記錄,git log則不能察看已經刪除了的commit記錄(1.3記錄已被刪除)

7、撤銷修改

放棄在工作區的修改:$ git checkout -- 1.txt,這裡有兩種情況:

一種是1.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;

一種是1.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。此時暫存區仍有檔案,如果想把暫存區的檔案清除,只在工作區保留修改,用$ git reset head 1.txt,然後再用上一種方式清除工作區修改。

總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。如果已經commit就回退版本到上乙個版本。

8、刪除檔案

$ rm 2.txt命令刪除,這時工作區中就沒2.txt檔案了,想恢復就用$ git checkout -- 2.txt,如果確實要從版本庫中刪除,就$ git rm 2.txt,commit;git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。

9、分支管理

檢視分支:git branch

建立分支:git branch name

切換分支:git checkout name

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

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

刪除分支:git branch -d name

10、新增github遠端倉庫

先在github中建立乙個倉庫demo2,在本地(.git的上級目錄)執行下列命令

$ git remote add origin [email protected]:yateschiang/demo2.git
$ git push -u origin master
將本地修改推送到github

$ git push origin master
11、配置命令別名

git config --global

alias.st status //st表示status

git config --global

alias.unstage 'reset head'

12、刪除untracked files

untracked files指新建的檔案,還未add到暫存區

git clean -f

//刪除當前目錄下未追蹤的檔案,如果當前目錄下有兩個子目錄aa和bb,aa已經被追蹤,bb未被追蹤,這兩個目錄下都新建了檔案,那麼aa中的檔案會被刪除,bb中的不會

git clean -fd

//刪除當前目錄下未追蹤的目錄和檔案,aa中未被追蹤的目錄和檔案也會被刪除

git clean -n

//顯示將要刪除的未追蹤檔案的名字

git clean -nf

//同上

git clean -nfd

//顯示將要刪除的未追蹤目錄和檔案的名字

13、git pull –rebase

當本地commit乙個提交和遠端伺服器中的**有衝突(別人也改了相同的檔案)時可以在pull 中加 –rebase。加上 rebase 的意思是:

把本地 repo. 從上次 pull 之後的變更暫存起來

恢復到上次 pull 時的狀態

合併遠端的變更到本地

最後再合併剛剛暫存下來的本地變更

常用命令 Git 常用命令大全

安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...

git 常用命令

檢視是否存在檔案需要上傳 git status git add git commit m 建立遠端倉庫 git remote add origin 116.255.146.153 ruby cd work daily project.git 更新git fetch 116.255.146.153 r...

git常用命令

詳細 1,git log p 命令來顯示每一次提交與其父節點提交內容之間快照的差異。2,為了檢視載入 staged 而並未提交 not committed 的內容差異,可以使用 git diff stage 命令 在git 1.6之前的版本中,使用 cached 適應情形 在執行git commit...