一、安裝(Install)
1.Linux系統
從git官網上下載源碼,解壓,依次輸入: 1./config 2 make 3 sudo make install
2.Windows系統
從https://git-for-windows.github.io下載,直接安裝即可。
在開始菜單中找到Git bash,即說明安裝成功,這個時候還需要一步操作。雙擊Git bash,輸入
git config --global user.email ”your email”。
二、創建使用Git
創建一個空文件夾,進入目錄,初始化git倉庫。
Git init成功之後,會提示創建了一個空的git倉庫,同時在目錄下會多出一個.git的文件夾,.git的文件夾存儲了倉庫信息。創建版本庫的時候,git會默認創建一個master主分支,以後的操作如果沒指定其他的分支都是基於master主分支。
創建完版本庫之後,就可以將文件添加到版本庫裏了,將文件添加到git倉庫需要兩步,第一步將文件從工作區添加到暫存區,第二步從暫存區提交到倉庫當前分支。
可以一次add多個文件,然後一次commit。
三、操作命令
3.1狀態
3.1.1 Git status
查看git倉庫的狀態,顯示工作區和暫存區的狀態,輸出當前所處哪個分支。3.1.2 Git diff
查看當前工作區和暫存區的區別,如果工作區已經提交到暫存區則沒有差別。Git diff HEAD -- file,可以查看工作區和當前版本庫的區別。
3.1.3 Git log
查看歷史記錄,輸出版本id,提交者以及提交時間還有提交時的備註信息,添加參數 --pretty=oneline,只輸出版本Id以及備註信息。3.1.4 Git reflog
查看所有操作記錄命令,前面的一串就是版本idd8c1284 HEAD@{0}: reset: moving to HEAD^
fce05e1 HEAD@{1}: commit: sec
d8c1284 HEAD@{2}: commit (initial): wrote a file
3.2 版本控制
3.2.1 Git reset --hard HEAD^
回退到上一個版本。3.2.2 Git reset --hard commitid
回退到指定版本,commitid爲版本id。3.3 撤銷操作
3.3.1 git checkout -- file
撤銷工作區的修改3.3.2 git reset HEAD file
撤銷對於暫存區的修改。3.4 刪除操作
3.4.1 git rm file
從當前工作區和暫存區刪除文件,但未提交版本庫,git commit命令之後,才提交版本庫。如果想回退,先要讓暫存區撤銷刪除,執行 git reset HEAD file,再撤銷工作區的刪除,git checkout -- file。如果已經提交版本庫,只能使用 git reset --hard commitid(指定版本id) 或者 git reset --hard HEAD^回退到最新版本。
3.5 ssh密鑰生成
3.5.1 ssh-keygen -t -rsa -C”yourEmail@”
生成ssh key,用於github遠程倉庫的使用。執行這個命令,一直回車就行,會在用戶的文件夾下生成.ssh文件夾,其中包含id_rsa,id_rsa.pub,id_rsa是私鑰,id_rsa.pub是公鑰,用來在你的github賬號的SSH and GPG keys裏添加,這樣就可以將本地文件推送到github上的遠程倉庫裏。3.6 遠程倉庫
3.6.1 git remote add origin [email protected]:huangyz1993/gittest.git
將本地倉庫與遠程倉庫關聯。3.6.2 git push -u origin master
推送本地master分支的文件至遠程倉庫,第一次推送需要-u,以後推送不需要-u參數,直接git push origin master。3.6.3 git clone [email protected]:huangyz1993/gittest.git
從遠程倉庫克隆到本地。3.6.4 git push origin branch-name
推送本地branch-name分支至遠程倉庫。3.6.5 git pull
更新遠程倉庫至本地。3.6.6 git branch --set-upstream branch-name origin/branch-name
建立本地分支與遠程分支的關係。3.7 分支操作
3.7.1 Git branch
查看分支。3.7.2 Git branch name
新建分支。3.7.3 Git checkout name
切換分支。3.7.4 Git checkout -b name
新建並切換分支。3.7.5 Git merge name
合併分支。3.7.6 Git branch -d name
刪除分支。3.7.7 Git merge name
合併分支的時候,有衝突的時候,只能自己手動解決衝突,可以是用git status查看衝突文件。解決衝突後,在提交文件,試用Git status就可以看見工作區和暫存區都是乾淨的了。因爲直接試用git merge name命令會使用fast forward,而fast forward模式會丟失掉分支記錄,所以做好採用禁止fast forward模式,將命令修改爲Git merge --no--ff -m “comment” name。
3.7.8 Git log --graph
顯示分支情況,添加--pretty=oneline參數信息只輸出一行,添加--abbrev-commit參數不輸出commitid。3.8 工作現場操作
3.8.1 git stash
保存工作現場。3.8.2 git stash list
查看所有工作現場列表。3.8.3 git stash apply
恢復最近一次保存的工作現場stash,git stash apply stashid 恢復id爲stashid的工作現場stash,但是不刪除保存的工作現場stash。3.8.4 git stash drop
刪除最近保存的工作現場,git stash drop stashid刪除指定工作現場。3.8.5 git stash pop
恢復最近保存的工作現場並刪除,git stash pop stashid恢復指定id的工作現場並刪除。3.9 標籤操作
3.9.1 git tag tagId
給當前最新commit打標籤,git tag tagIdcommitId給指定commit打標籤,Git tag -a “tagId” -m “explain” 給最新commit打標籤,-a指定版本號,-m指定說明文字。
3.9.2 git tag -d tagId
刪除指定標籤。3.9.3 git push origin tagName
推送tag到遠程,git push origin --tags,推送所有tag到遠程。已經推送到遠程的tag,需要先刪除本地tag,再執行git push origin :refs/tags/tagName,刪除遠程tag。