Git

創(chuàng)建版本庫

mkdir res-name
cd res-name
git init

查看工作區(qū)狀態(tài)

git status

如果git status告訴你又文件被修改,查看修改內(nèi)容

git diff file-name

版本穿梭

  • HEAD指向的版本是當(dāng)前版本,HEAD^是上一個 HEAD^^是上兩個
  • git reset –hard commit_id
  • 使用git log可以查看提交歷史,以便確定要回退到哪個版本
  • 如果要重返未來,使用git reflog查看歷史命令,可以找到你想回到的commit_id

工作區(qū)和暫存區(qū)

  • 當(dāng)前的目錄就是工作區(qū)
  • git add 把工作區(qū)的內(nèi)容添加到暫存區(qū)
  • git commit 把暫存區(qū)的內(nèi)容添加的版本庫里面,暫存區(qū)清空。

管理修改

  • git add 然后再git commit
  • git add path 把path中的內(nèi)容都添加到暫存區(qū)。
  • 通過.gitignore文件來忽略特殊的文件

撤銷修改

  • 放棄工作區(qū)的某個文件的修改用git checkout –- file-name
  • 把暫存區(qū)的內(nèi)容放回工作區(qū)git reset HEAD file
  • 已經(jīng)提交到版本庫,版本回退

刪除文件

  • 如果你rm了file1,那么你有兩個選擇
    • 刪除版本庫中file1,使用git rm file1
    • 誤刪了從版本庫中恢復(fù)回來,git checkout -– file1

遠(yuǎn)程倉庫

  1. 先創(chuàng)建一個本地的,然后git remote add …
    以github為例:
    git remote add origin git@github.com:cuihz/learngit.git
    其中origin是遠(yuǎn)程倉庫在本地的名字。
  2. git clone
    以github為例:
    git clone https://github.com/cuihz/learngit.git
    clone下來默認(rèn)的遠(yuǎn)程倉庫在本地的名稱就是origin

分支管理

查看分支:  git branch
創(chuàng)建分支:git branch branch-name
切換分支:git checkout branch-name
創(chuàng)建+切換分支:git checkout -b branch-name
合并某個分支到當(dāng)前分支:git merge branch-name
刪除分支:git branch -d branch-name

沖突處理

當(dāng)執(zhí)行g(shù)it merge的時候,git會進(jìn)行快速合并,但是當(dāng)兩個文件有沖突的時候就無法進(jìn)行快速合并。注意git merge是把指定的分支中的內(nèi)容合并到當(dāng)前這條分支上,對指定分支的內(nèi)容沒有任何影響。有時在合并的過程中會產(chǎn)生沖突,快速合并無法進(jìn)行。這時候需要你介入去解決沖突。解決沖突要修改這條分支上的沖突文件,在git標(biāo)注的地方修改成你想要合并成的樣子。就是把<<<<<<< 和 >>>>>>中的東西刪除,然后改成你要加的。比如你可以把 a abc 和 abc d合并成 a abc d這個也是可以的。修改后git add file 然后git commit file就可以了。處理過的沖突再合并時候可以直接快速合并。

使用普通合并

git merge –no-ff -m "merge with no-ff" dev。

使用普通合并能夠保存分支歷史,可以使用git log去查看。而快速合并是看不出來曾經(jīng)做過合并的。這個更推薦點吧感覺。

Bug分支

當(dāng)手頭工作沒有做完并且還不想提交時候,先git stash一下,然后去切到主分支,新建個bug分支修復(fù)bug,把bug分支合并到主分支。然后再git stash pop回到工作現(xiàn)場。

feature分支

正常的為軟件添加一個新功能就是建立一個feature分支,然后開發(fā),然后合并到master。但是假如開發(fā)到一半決定取消這個功能了,這時候就需要強(qiáng)行的刪掉這個分支,使用git branch -D branch-name

多人協(xié)作模式

  1. 首先,可以試圖用git push origin branch-name
  2. 如果推送失敗,則因為遠(yuǎn)程分支比你的本地更新,則需要先用git pull試圖合并。
  3. 如果合并有沖突,則解決沖突并在本地提交
  4. 如果沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功
  5. 常用命令
    -如果git pull提示 “no tracking information” 則需要用
    git branch –set-upstream branch-nameorigin/branch-name
    建立本地分支與遠(yuǎn)程分支的關(guān)聯(lián)。
    -查看遠(yuǎn)程庫信息,使用git remote -v
    -從本地推送分支,使用
    git push origin branch-name
    如果推送失敗,先用git pull抓取遠(yuǎn)程的新提交
    -在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支,使用
    git checkout -b branch-name orgin/branch-name
    -建立本地分支與遠(yuǎn)程分支的關(guān)聯(lián),使用
    git branch –set-upstream branch-name orgin/branch-name
    -從遠(yuǎn)程抓取分支,使用git pull,使用git pull,如果有沖突,就先處理沖突。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容