1.創建倉庫
mkdir git
cd git ——創建/home/XXX/git空目錄
2.通過git init命令把這個目錄變成Git可以管理的倉庫:
git init ——初始化Git倉庫
3.用命令git add告訴Git,把文件添加到倉庫(實際上就是把文件修改添加到暫存區):
git add filename
4.用命令git commit告訴Git,把文件提交到倉庫(實際上就是把暫存區的所有內容提交到當前分支):
git commit -m "有意義的附加說明"
5.隨時掌握工作區的狀態
git status
6.查看文件被修改的內容
git diff
7.查看代碼的歷史版本號
git log
git log --pretty=oneline ——要求版本信息只能在一行中顯示
8.HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭
git reset --hard commit_id
或git reset --hard HEAD^(HEAD^^等等)
9.查看命令歷史,以便確定要回到未來的哪個版本
git reflog
10.弄明白Git的工作區(當前分區)和暫存區
11.理解Git是如何跟蹤修改的,每次修改,如果不add到暫存區,那就不會加入到commit中
12.撤銷修改
命令git checkout -- filename意思就是,把filename文件在工作區的修改全部撤銷,這里有兩種情況:
一種是filename自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是filename已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態。
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。
場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,版本回退,不過前提是沒有推送到遠程庫。
13.刪除文件
命令git rm用於刪除一個文件。如果一個文件已經被提交到版本庫,那么你永遠不用擔心誤刪,但是要小心,你只能恢復文件到最新版本,你會丟失最近一次提交后你修改的內容。
14.將本地倉庫與github倉庫關聯起來
往里面添加文件:
1 touch README.md 2 git init 3 git add README.md 4 git commit -m "first commit" 5 git remote add origin git@github.com:sysublackbear/Learmgitfirst.git 6 git push -u origin master
將本地倉庫同步github倉庫:
1 git remote add origin git@github.com:sysublackbear/Learmgitfirst.git 2 git push -u origin master
然后,從現在起,只要本地作了提交,就可以通過命令:
1 git push origin master
把本地master分支的最新修改推送至GitHub
15.多人協作一個項目的時候,我們每個人可以通過從遠程倉庫克隆一份來作為己用。
1 git clone git@github,com:sysublackbear/XXXX.git
16.創建分支並且切換到分支
1 git checkout -b dev 2 Switched to a new branch 'dev'
等價於:
1 git branch dev 2 git checkout dev 3 Switched to branch 'dev'
查看分支:
1 git branch
將次分支合並到主分支上面:
1 git merge dev
刪除分支:
1 git branch -d dev 2 Deleted branch dev (was fec145a).
17.解決沖突
當Git無法自動合並分支時,就必須首先解決沖突。解決沖突后,再提交,合並完成。
用git log --graph命令可以看到分支合並圖。
18.Bug修復
修復bug時,我們會通過創建新的bug分支進行修復,然后合並,最后刪除;
當手頭工作沒有完成時,先把工作現場git stash一下,然后去修復bug,修復后,再git stash pop,回到工作現場
19.開發新功能
開發一個新功能,最好新建一個分支;
如果要丟棄一個沒有被合並過的分支,可以通過git branch -D name強行刪除。
20.參與開源項目先要克隆一份到本地
1 git clone git@github.com:michaelliao/bootstrap.git