git常用操作

標註紅色爲需要根據實際情況修改的部分

0.定義

fork:將GItHub的某個特定倉庫複製到自己的賬戶下

follow:關注

repository :倉庫

HEAD:當前分支中最新一次提交的指針

conflit:衝突,比如同個文件不同修改在合併時的衝突

issue:主要是用來進行bug跟蹤及軟件討論

FETCH_HEAD: 是一個版本鏈接,記錄在本地的一個文件中,指向着目前已經從遠程倉庫取下來的分支的末端版本。 

.gitignore 文件:記錄不需要在Git倉庫中進行版本管理的文件

.license 文件 :表明倉庫內容的許可協議

.git文件:存儲管理當前目錄內容所需的倉庫數據,倉庫管理者文件的歷史快照,可從倉庫中調取歷史快照,在目錄中打開內容,目錄的內容又稱爲附屬於該倉庫的工作樹。編輯時在工作樹中進行,然後記錄到倉庫中。


 

 

 

1.設置用戶名及郵箱

git config --global user.name "myname"

git config --global user.email "myemail"

也可在~/.gitconfig 中查看或編輯

2.初始化及查看公鑰

ssh -keygen -t rsa -C "myemail"

cat ~/.ssh/id_rsa.pub

3.查看狀態信息

git status

各類狀態:

Untracked files:未添加至git倉庫的文件

changes to be committed:暫存區中未被提交的文件

 

4.新增一個文件並提交

git add newfile   加入暫存區,暫存區是提交之前的臨時區域

git commit -m ‘add new file’ 提交信息,將暫存區中的文件保存到倉庫的歷史記錄中。多行提交信息使用git commit打開編輯器編輯,若編輯器啓動後未經編輯直接關閉,則提交被終止

git push 更新Github上的倉庫

可使用git commit -am 來實現add和commit兩個步驟

 

5.查看日誌

git log  查看以當前狀態爲終點的歷史日誌

git reflog 查看當前倉庫執行過的操作日誌,不以當前狀態爲終點,包含commit,checkout, merge等各種操作

git log -n 1 查看最新的一條提交

git log 目錄名 顯示該目錄下的日誌

git log 文件名 顯示文件相關日誌

git log -p 文件名 顯示文件提交前後差別

git log --graph 以圖表形式查看分支,可查看特性分支(相對於主幹分支)的創建及合併

 

 

6.初始化git本地版本管理倉庫,進行版本管理

git init

7.查看更改前後差別

git diff 查看工作樹與暫存區差別,+表示新添加的行,-表示被刪除的行

git diff HEAD 查看工作樹與最新提交的差別,HEAD指當前分支中最新一次提交的指針

 

8.查看、新建分支

git branch 顯示分支列表,查看當前所在分支

git branch -a 可查看遠程分支信息

git branch 新分支名  創建新分支

9.切換分支

git checkout feature-test

git checkout - 切換回上一個分支

若要創建切換一個新分支,以下兩種方式等效

方式一:

git checkout -b newbranch

方式二:

git branch newbranch

git checkout newbranch

10.合併分支

git checkout master

git merge --no-ff dev  使用--no-ff參數可記錄本次合併信息,啓動編輯器後可錄入合併提交的信息,可使用默認內容Merge branch ‘dev’直接保存關閉編輯器

11.回溯、推進歷史版本

git reset --hard  commit號 讓倉庫的HEAD、暫存區、當前工作樹回溯到指定狀態

12.衝突

舉個例子,在merge時發生comflict,報錯信息爲:

CONFLICT(content):Merge conflict in README.md

Automatic merge failed:fix conflicts and then commit the result

解決方法:打開衝突文件README.md重新編輯,並add commit

#Git衝突實例

<<<<<<<HEAD

 -A

=========

-B

>>>>>>>dev

 

=========以上是當前HEAD的內容,下面是要merge的分支的內容,修改爲

#Git衝突實例

-A

-B

再通過add 和commit提交

13.修改上一條提交信息

git commit --amend

14.修正上一次提交的內容並壓縮歷史

   在歷史記錄中並不需要修正拼寫錯誤等版本,因此存在修正上次提交內容的需求,具體步驟爲:

1)先使用add commit 進行一次提交,得到新的一次歷史記錄

2)使用git rebase 壓縮歷史,將兩次歷史記錄合併

git rebase -i HEAD-2 

選定當前分支最後包含HEAD(最新提交)在內的兩個最新歷史記錄對象,並在編輯器中打開

pick  commit號1 commit信息1

pick commit號2 commit信息2

3)修改內容

若要將commit號2 的提交內容壓縮到commit號1中,修改對應的pick爲fixup,保存並關閉

pick  commit號1 commit信息1

fixup commit號2 commit信息2

4)合併後commit號1已變更,可用git log --graph 查看

 

15.創建遠程GIthub倉庫,並將本地倉庫推送至遠程倉庫

比如我在本地編輯好代碼了,想將多個文件的內容推送到GIthub上保存。

1)創建遠程Github倉庫

github上:new repository——repository name 保持一致,填本地的名稱——不要創建readme.md——creat repository

2)對本地倉庫添加遠程倉庫

本地:git remote add origin [email protected]:xxxxxx  

執行之後自動將遠程倉庫的名稱設置爲origin

3)推送內容

git push -u origin master 將當期分支的內容推送給遠程倉庫origin的master分支

-u 參數將遠程倉庫origin的master分支設置爲當前分支的上游(upstream),下次git pull 時就不用添加參數啦

也可推送到origin的其他分支 git push origin work 可實現新建遠端新分支

16.獲取遠程倉庫

獲取遠程master:git clone 後默認處於master分支下,且系統自動將origin設置成遠程倉庫的標識符,即本地master=遠程origin master

新建分支並獲取遠程其他分支:git  checkout -b dev origin/dev   -b新建了本地dev分支

獲取遠程其他分支:git pull origin dev

17.pull request

1)Github界面fork他人代碼

2)clone至本地修改,創建特性分支進行修改,提交修改後的代碼至github遠程分支

3)通過github界面分支名左側綠色按鈕查看分之間差別,確認是否正確

4)點擊create pull request——編輯請求——點擊send pull request

18.更新單個文件

git fetch origin master  獲取最新數據,更新遠程代碼到本地倉庫,不自動merge

git checkout origin/master c.txt

19.更新本地文件到最新,獲取最新數據

方案一:

git fetch origin

git merge origin/master

方案二:

git fetch origin master:tmp

git diff tmp 將當前分支與tem進行比較

git merge tmp 合併merge分支到當前分支

方案三:

git pull origin master

20.撤銷修改

用git status 可以獲得一些建議

情景一:未add至暫存區,撤銷到和版本庫一致,即最近一次commit狀態

git checkout --  filename.txt  

情景二:已add至暫存區,撤銷到和暫存區一樣,即最近一次add狀態

git checkout --  filename.txt  

情景三:已add至暫存區,撤銷到暫存之前

git reset HEAD filename.txt   撤銷暫存區的修改,重新放回工作樹

git checkout -- filename.txt  丟棄工作區的修改

注意HEAD表示最新版本,git reset還可進行版本回溯功能

情景四:已提交到版本庫,回退到上次提交後的狀態

git reset --hard commit號

21.從版本庫中恢復被刪除的文件

git checkout -- filename.txt  

22.刪除未add即untracted的文件

git clean -n 顯示要刪除的東西

git clean -f 刪除文件

git clean -df 刪除文件和目錄

 

 

 

 

 

參考網址:https://blog.csdn.net/richard_jason/article/details/52892387

《Github入門與實踐》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章