本文是我在[實驗樓]這個平臺學習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
命令將文件加入到緩存區(index)后,該文件狀態會改變為: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
參數來逆向顯示所有提交日志。