入門Git
本文是我在[實驗樓]這個平臺學習git時的第一篇學習筆記,現貼出來以饗大家!
git學習
1、git的配置
git的配置主要通過git config --global <配置名稱> <配置的值>
來對git進行配置
其中最常用的配置為:
git config --global user.name name
git config --global user.email email
完成配置後,配置資訊會存在於一個隱藏檔案中:.gitconfig
。可以通過cat .gitconfig
檢視配置內容。
2、獲取一個Git倉庫
這有兩種方法:
1、從已有的Git倉庫中克隆(clone)。通過git clone URL
方式clone程式碼。
2、新建一個倉庫。通過git init
在某資料夾中初始化一個空倉庫,初始化完畢後,在該資料夾中會新建一個隱藏檔案`.git``
3、git的基本流程
1、建立或修改檔案
2、使用git add
命令新增新建立或修改的檔案到本地快取區(index)
3、使用git commit
命令提交原生代碼庫
4、使用git push
命令將原生代碼庫同步到遠端程式碼庫
git status
檢視當前git倉庫的狀態,新建的檔案的狀態時:untracked
使用git add file
new file
使用git diff --cached
檢視快取區中哪些檔案被修改了,進入該介面後,需要輸入q
才可以退出,該命令只檢視加入到快取的檔案的變化。
使用git commit
提交修改,git commit
可選引數:-m
新增本次修改的註釋,完成後就會記錄一個新的專案版本。:-a
將沒有加到快取區的修改也一起提交,對已提交過的檔案進行修改後,檔案狀態變為:modified
,需要注意的是-a
命令不會新增新建的檔案,如果一個檔案不是新建的,而是被修改過,則可以通過這個命令提交,如果是新建的,則不能進行提交。
如果是刪除檔案,則直接使用git rm
git commit
提交後就會將本地倉庫中的對應檔案刪除。
如果希望將本地倉庫關聯到遠端伺服器,可以使用git remote
命令,當前倉庫是使用git init
初始化的本地倉庫,所以需要將本地倉庫與遠端倉庫關聯,使用的命令為:
git remote add origin https://github.com/user-name/project.git
git remote add
命令用於新增遠端主機,origin
是主機名,可以自定義,https://github.com/user-name/project.git
是要關聯的遠端倉庫地址。
提交程式碼:
git push origin master
4、分支與合併
git分支可以讓你在主線(master)之外進行程式碼提交,同時又不會影響程式碼庫主線。
分支的作用:體現在多人協作開發中,比如一個團隊開發軟體,你負責獨立的一個功能需要一個月的時間來完成,你就可以建立一個分支,只把該功能的程式碼提交到這個分支,而其他同事仍然可以繼續使用主線開發,你每天的提交不會對他們造成任何影響。當你完成功能後,測試通過再把你的功能分支合併到主線。
1、建立分支:
git branch branch-name
git branch
命令可以檢視當前的分支列表,以及目前的開發環境處於哪個分支上。
2、切換分支
master
分支是git系統預設建立的主分支,*
號標識了你當前工作在哪個分支下。
git checkout 分支名
可以切換到其他分支。
3、合併分支
通過git merge
合併分支
eg:
git merge -m "註釋" 需要合併的分支名
如果不同分支同時修改了同一檔案,則不能直接通過git merge
命令合併。此時通過git status
檢視狀態,則被同時修改的檔案的狀態為:both modified
此時檢視被修改的內容,可以看到不同分支對該檔案的修改,也可以通過git diff
檢視到相同的內容。
不同分支衝突的內容都被新增到被修改的檔案中,此時需要手動解決衝突,用vim
開啟該檔案,去掉<<<<<<
等符號後,根據需要保留提交的 內容,然後git add
,git commit
提交。
如果出現cannot do a partial commit during a merge
1、提交全部:git commit -a
2、如果不想提交全部,可以通過新增-i
選項:git commit file/to/path -i -m "merge"
4、刪除分支
完成合並後,不再需要某分支時,可以通過以下命令刪除:
git branch -d branch-name
git branch -d
只能刪除那些已經被當前分支合併的分支,如果要強制刪除某分支,用git branch -D
5、撤銷一個分支
通過以下命令,返回合併之前的狀態。
git reset --hard [merge前的版本號]
5、git日誌
1、檢視日誌
通過git log
命令顯示所有提交,回車會逐步顯示,輸入q
退出
2、日誌統計
如果用--stat
選項使用git log
,它會顯示在每個提交中哪些檔案被修改了,這些檔案分別新增或刪除多少行內容。
git log --stat
3、格式化日誌
--pretty
引數可以使用若干表現格式,如oneline、short、medium、full、fuller、email、、raw
--graph
用來視覺化提交圖
4、日誌排序
日誌記錄可以按不同的順序來顯示,如果你要指定一個特別的順序,可以為git log
命令新增順序引數。
指定--topo-order
引數,讓提交按拓撲順序來顯示(就是子提交在它們的父提交前顯示)
git log --pretty=format:"%h:%s" --topo-order --graph
也可以用--reverse
引數來逆向顯示所有提交日誌。