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

一.建立版本庫

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

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

 二.時光機穿梭

①查看工做區狀態,文件是否被修改過:git status服務器

②查看修改的內容:git diffssh

1.版本回退

①HEAD:當前版本spa

②HEAD^:上個版本code

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

④git log:穿梭前,用git log能夠查看提交歷史,以便肯定要回退到哪一個版本server

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

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

相關文章
相關標籤/搜索