學習了網上一些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倉庫中,先要把...