《Git教程-廖雪峰》學習筆記


一.創建版本庫

①初始化一個Git倉庫:git init

②添加文件到Git倉庫:1.git add<file> ;  2.git commit

 二.時光機穿梭

①查看工作區狀態,文件是否被修改過:git status

②查看修改的內容:git diff

1.版本回退

①HEAD:當前版本

②HEAD^:上個版本

③定位版本:git reset --hard commit_id

④git log:穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本

⑤git reflog:要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。

2.工作區和暫存區

①工作區:就是你在電腦里能看到的目錄,比如我的learngit文件夾就是一個工作區

②版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。

③暫存區:Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區。           

              第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;

              第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

3.管理修改

①每次修改,如果不add到暫存區,就不會加入到commit中

4.撤銷修改

①git checkout -- file:丟棄工作區的修改

②git reset HEAD file:把暫存區的修改撤銷掉,重新放回工作區

5.刪除文件

①git rm:從版本庫中刪除文件

三.遠程倉庫

1.添加遠程庫

①關聯一個遠程庫:git remote add origin git@server-name:path/repo-name.git

②關聯后第一次推送master分支的所有內容:git push -u origin master

③此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

ps:由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。

2.從遠程庫克隆

①要克隆一個倉庫,首先必須知道倉庫的地址,然后使用git clone命令克隆

②Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快

四.分支管理

1.創建與合並分支

①查看分支:git branch

②創建分支:git branch<name>

③切換分支:git cheakout<name>

④創建+切換分支:git cheakout -b <name>

⑤合並某分支到當前分支:git merge<name>

⑥刪除分支:git branch - d <name>

2.解決沖突

①查看分支合並圖:git log -- graph

  eg:git log --graph --pretty =oneline --abbrev -commit

3.分支管理策略

①合並分支時加--no-ff參數:普通模式合並,合並后的歷史有分支,禁用fast forward

eg:git log --no-ff-m"merge with no--ff"dev

4.Bug分支

①git stash:把當前工作現場隱藏起來,去修復bug

②git stash pop:恢復工作現場同時刪除stash內容

5.Feature分支

①開發一個新feature,最好新建一個分支;

②如果要丟棄一個沒有被合並過的分支,可以通過git branch -D <name>強行刪除

6.多人協作

①git remote -v:查看遠程庫信息

②git push origin branch-name:從本地推送分支

③git pull:推送失敗時,抓取遠程的新提交

④git checkout -b branch-name origin/branch-name:在本地創建和遠程分支對應的分支(本地和遠程分支的名稱最好一致)

⑤git branch --set-upstream branch-name origin/branch-name:建立本地分支和遠程分支的關聯

五.標簽管理

1.創建標簽

①git tag <name>:新建一個標簽(默認為HEAD,也可以指定commit id)

②git tag -a <tagname> -m "blablabla...":可以指定標簽信息

③git tag -s <tagname> -m "blablabla...":可以用PGP簽名信息

④git tag:查看所有標簽

2.操作標簽

①git push origin <tagname>:推送一個本地標簽

②git push origin --tags:推送全部未推送過的本地標簽

③git tag -d <tagname>:刪除一個本地標簽

④git push origin :refs/tags/<tagname>:刪除一個遠程標簽

六.使用GitHub

 

①在GitHub上,可以任意Fork開源倉庫;

 

 

②自己擁有Fork后的倉庫的讀寫權限;

 

 

③可以推送pull request給官方倉庫來貢獻代碼。

 

七.自定義Git

1.忽略特殊文件

①忽略某些文件時,需要編寫.gitignore

2.配置別名

①我們只需要敲一行命令,告訴Git,以后st就表示statusgit config --global alias.st status

 eg:

$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch

$ git config --global alias.unstage 'reset HEAD'
$ git config --global alias.last 'log -1'

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

3.搭建Git服務器

GitHub就是一個免費托管開源代碼的遠程倉庫。但是對於某些視源代碼如生命的商業公司來說,既不想公開源代碼,又舍不得給GitHub交保護費,那就只能自己搭建一台Git服務器作為私有倉庫使用。

例如大眾點評code.dianpingoa.com

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM