Git 常用命令學習

2021-08-13 10:18:14 字數 4084 閱讀 5241

學習了網上一些git的資料(包括廖雪峰的教程),總結一下:

1) git和svn命令的對比:

『git clone』 == 『svn checkout』

『git checkout』 == 『svn switch』

『git push』 == 『svn commit』

2) 『git add readme.txt』 是把readme.txt從workspace放到staging區。

git commit -m 「some information」』 是把readme.txt從staging區放到repository。

注意這裡都還是在本機上的操作。要傳到遠端伺服器上需要用push。

3) 『git status』 的執行結果舉例

如果修改了readme.txt,但還沒有執行』git add readme.txt『,執行』git status『結果為:

# on branch master

# changes not staged for commit:

# (use "git add ..." to update what will be committed)

# (use "git checkout -- ..." to discard changes in working directory)

## modified: readme.txt

#no changes added to commit (use "git add" and/or "git commit -a")

上面顯示了」modified」, 則表明readme.txt檔案有改動。同時上面還顯示」no changes added to commit」,表明該檔案還沒有出現在staging區。

執行了』git add readme.txt『操作後,再執行』git status』,結果如下:

$ git status

# on branch master

# changes to be committed:

# (use "git reset head ..." to unstage)

## modified: readme.txt

#

還是會顯示」modified」,但是那行」no changes added to commit」沒有了,因為修改後的檔案已經放在staging area,有東西要commit到repository了。

4) 『git diff head – readme.txt

會顯示workspace和repository之間的readme.txt之間的差異。如果還沒有執行』git commit readme.txt『, 那麼不管有沒有執行』git add readme.txt『,上面的』git diff head – readme.txt『都會顯示workspace和repository之間的差異,該差異跟是否執行』git add readme.txt』無關。

如果已經執行了』git commit readme.txt『,則上面的diff會顯示沒有區別。因為workspace和repository的內容已經一樣了。

這時候再執行』git status『,會顯示

# on branch master

nothing to commit (working directory clean)

5) 『git checkout – readme.txt

會讓readme.txt放棄在workspace的修改,也就是回到最近一次提交』git commit readme.txt『或』git add readme.txt『的狀態。

如果readme.txt修改後還沒有被放到staging區(也就是還沒有執行git add),那麼』git checkout – readme.txt』 會讓readme.txt回到repository裡面的狀態,也就是上次』git commit』的狀體。

如果readme.txt修改後已經被放到staging區(也就是已經執行了git add,但還沒有git commit),那麼』git checkout – readme.txt『會讓readme.txt回到tia

一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到剛剛新增到暫存區後的狀態(也就是剛剛git add時的狀態。

git checkout .『 會拋棄當前的folder和子folder的變化。

6) 『git reset head readme.txt

是放棄staging區裡面的readme.txt的修改,讓其回到』git add readme.txt『之前的狀態。

8) 如何修改commit注釋?

git commit –amend

9) 如何合併最近的3個commit?

假定最近的4個commit如下:

run 『git rebase -i 5d39ff2

or run 『git rebase -i head~3

乙個notepad++檔案會出現,前面3行如下

pick e7ba81d commit-1

pick 5756e15 commit-2

pick b1b8189 commit-3

將其改為:

pick e7ba81d commit-1

squash 5756e15 commit-2

squash b1b8189 commit-3

或 pick e7ba81d commit-1

s 5756e15 commit-2

s b1b8189 commit-3

儲存檔案並推出。又會彈出乙個notepad++檔案,開頭部分顯示如下:

# this is a combination of 3 commits.

# the first commit's message is:

commit-1 注釋1

# this is the 2nd commit message:

commit-2 注釋2

# this is the 3rd commit message:

commit-3 注釋3

將其改為:

commit-1   注釋1

存檔並推出即可。

10) 如何config git global email?

git config –global user.email 「[email protected]

如何config git global name?

git config –global user.name 「your_name」

如何reset author?

git commit –amend –reset-author

如何顯示git global user email?

git config –global user.email

如何顯示git global user name?

git config –global user.name

還有好多,下次再寫。

Git學習 git常用命令

我們常用 p 選項展開顯示每次提交的內容差異,用 2 則僅顯示最近的兩次更新 還有許多摘要選項可以用,比如 stat,僅顯示簡要的增改行數統計 p 按補丁格式顯示每個更新之間的差異。stat 顯示每次更新的檔案修改統計資訊。shortstat 只顯示 stat 中最後的行數修改新增移除統計。name...

git常用命令學習

1.提交專案 1.遠端建立專案 git clone 鏈結 拷貝下來 git add 增加的檔案 新增本地新增內容 git commit m 注釋 或者 a進入圖形介面寫入注釋 git push original master 將本地檔案提交遠端倉庫 當我們後續改變公升級專案後,再次提交如下 git ...

學習GIT常用命令

淺顯易懂完整的git學習教程在這裡 廖雪峰的官方 git教程 簡單來說,git的工作流程很簡單,我們把整個過程中檔案的轉移分為3個區域 工作區,暫存區,分支。工作區就是我們對檔案進行操作的地方,比如你在本地git倉庫修改檔案,編寫 的檔案儲存空間。現在你的檔案改好了,想把它提交到git倉庫中,先要把...