入门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命令將文件加入到緩存區(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.gitgit remote add命令用于添加遠程主機,origin是主機名,可以自定義,https://github.com/user-name/project.git是要關聯的遠程倉庫地址。
提交代碼:
git push origin master4、分支與合并
git分支可以讓你在主線(master)之外進行代碼提交,同時又不會影響代碼庫主線。
分支的作用:體現在多人協作開發中,比如一個團隊開發軟件,你負責獨立的一個功能需要一個月的時間來完成,你就可以創建一個分支,只把該功能的代碼提交到這個分支,而其他同事仍然可以繼續使用主線開發,你每天的提交不會對他們造成任何影響。當你完成功能后,測試通過再把你的功能分支合并到主線。
1、創建分支:
git branch branch-namegit 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-namegit branch -d只能刪除那些已經被當前分支合并的分支,如果要強制刪除某分支,用git branch -D
5、撤銷一個分支
通過以下命令,返回合并之前的狀態。
git reset --hard [merge前的版本號]5、git日志
1、查看日志
通過git log命令顯示所有提交,回車會逐步顯示,輸入q退出
2、日志統計
如果用--stat選項使用git log,它會顯示在每個提交中哪些文件被修改了,這些文件分別添加或刪除多少行內容。
git log --stat3、格式化日志
--pretty參數可以使用若干表現格式,如oneline、short、medium、full、fuller、email、、raw
--graph用來可視化提交圖
4、日志排序
日志記錄可以按不同的順序來顯示,如果你要指定一個特別的順序,可以為git log命令添加順序參數。
指定--topo-order參數,讓提交按拓撲順序來顯示(就是子提交在它們的父提交前顯示)
git log --pretty=format:"%h:%s" --topo-order --graph也可以用--reverse參數來逆向顯示所有提交日志。
總結