git學習

一、安裝(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.name ”Your name”,

git config --global user.email ”your email”。


your name和your email相當你在Github的唯一標識,config --global 指定全局的參數。


二、創建使用Git

創建一個空文件夾,進入目錄,初始化git倉庫。


1.Mkdir learngit    2.Cd learngit  3.Git init

Git init成功之後,會提示創建了一個空的git倉庫,同時在目錄下會多出一個.git的文件夾,.git的文件夾存儲了倉庫信息。創建版本庫的時候,git會默認創建一個master主分支,以後的操作如果沒指定其他的分支都是基於master主分支。


創建完版本庫之後,就可以將文件添加到版本庫裏了,將文件添加到git倉庫需要兩步,第一步將文件從工作區添加到暫存區,第二步從暫存區提交到倉庫當前分支。


1.Git add test.txt  2.Git commit -m “備註信息”。

可以一次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

查看所有操作記錄命令,前面的一串就是版本id
d8c1284 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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章