Git-study

git的優(yōu)勢(shì):不用聯(lián)網(wǎng)就可以工作、遠(yuǎn)程倉(cāng)庫(kù)、強(qiáng)大的分支管理。

基本操作:mkdir(創(chuàng)建文件夾)、cd(退出或進(jìn)入文件夾)、ls(顯示當(dāng)前文件夾的子文件夾)、pwd(顯示當(dāng)前所在的文件夾位置)、vi wu.txt(創(chuàng)建wu.txt文本文檔)、git init(將所在的文件夾設(shè)置成為repositor(倉(cāng)庫(kù)))、ls -ah(查看隱藏起來(lái)的git文件夾)git status(時(shí)刻掌握倉(cāng)庫(kù)當(dāng)前的狀態(tài))git commit -m'注釋'(提交記錄) git diff(查看具體修改了什么)

git時(shí)光機(jī)(版本回溯):

git log(查看最近修改的版本)便于回溯版本查看注釋? git reset --hard HEAD^ or?git reset --hard HEAD~number(回溯到那個(gè)版本)?,假如已經(jīng)回溯到了上一個(gè)版本那么怎么回到當(dāng)前版本呢(git bash窗口還沒(méi)關(guān)閉可以挽救),git reset --hard commit-id(git log可查看)。如果git bash窗口關(guān)閉了那么可以用git reflog查看歷史commit-id

git工作區(qū):例如用git init創(chuàng)建的一個(gè)倉(cāng)庫(kù)

git版本庫(kù):git工作區(qū)有一個(gè)隱藏的.git文件,他不算工作區(qū)而是版本庫(kù),Git的版本庫(kù)里存了很多東西,其中最重要的就是稱(chēng)為stage(或者叫index)的暫存區(qū),還有Git為我們自動(dòng)創(chuàng)建的第一個(gè)分支master,以及指向master的一個(gè)指針叫HEAD。前面修改文本文件or提交都是在緩存區(qū)里面進(jìn)行的。

git修改:第一次修改>git add? name>git commit -m'注釋'.?第一次修改>git add? name>第二次修改>git add name>git commit -m'注釋'.

git刪除:git rm aa.txt(刪除文檔文件aa.txt) git commit -m'remove aa.txt'(刪除提交記錄)

git遠(yuǎn)程倉(cāng)庫(kù):首先需要一個(gè)GitHub賬號(hào),在git-bash上 git remote add origin ssh(GitHub上復(fù)制)。本地倉(cāng)庫(kù)和GitHub遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)git push -u origin master(公鑰是必要的:https://gitscm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5有詳細(xì)介紹)

git分支管理:git checkout -b dev(創(chuàng)建新分支并進(jìn)入) git branch dev(創(chuàng)建分支) git checkout master(分支切換)? git branch(查看分支及當(dāng)前分支“ *”辨識(shí))?git merge dev(合并分支) git branch -d dev(刪除一條分支)??

git分支沖突:有些時(shí)候分支和master分支合并的時(shí)候并不是每個(gè)都可以快速合并的例如:在dev分支上修改了aa.txt又在master上修改了aa.txt。并且修改的是不一樣的,這個(gè)時(shí)候需要手動(dòng)修改成為相同的。當(dāng)合并出現(xiàn)這個(gè)情況時(shí):CONFLICT (content): Merge conflict in aa.txt Automatic merge failed; fix conflicts and then commit the result.便是有沖突。git status可以告訴我們沖突的文件。git log --graph --pretty=oneline --abbrev-commit(可以查看合并情況)。

前面有說(shuō)到分支快速合并,但是快速合并會(huì)丟失分支信息。在工作中都是在dev分支中做工作然后合并在master分支上,多人合作時(shí)快速合并會(huì)造成一些麻煩所以要避免這種情況:git merge --no-ff -m"new branch"(這樣合并能夠在git log graph --pretty=oneline --abbrev-commit(查看分支合并的歷史記錄))

bug分支:在正常工作中往往會(huì)遇到bug所有需要先放下手頭的工作去解決bug,首先需要git stash(把工作場(chǎng)存起來(lái))再創(chuàng)建一個(gè)bug分支對(duì)bug進(jìn)行處理,處理完成后再合并分支。這時(shí)候假如剛剛的工作還沒(méi)做完需要繼續(xù)那么怎么才能繼續(xù)呢?git stash list(查看保存起來(lái)的工作場(chǎng)地),接下來(lái)就是恢復(fù)工作場(chǎng)地:1、git stash apply(恢復(fù)工作場(chǎng)地,但是git stash list記錄不會(huì)刪除需要手動(dòng)刪除:git stash drop)。2、git stash pop(恢復(fù)工作場(chǎng)地并刪除list里面的)

強(qiáng)行刪除分支:git branch -D <name>

多人合作:在開(kāi)發(fā)中一個(gè)項(xiàng)目往往需要很多人一起合作完成,假如你在做一個(gè)項(xiàng)目需要clone一個(gè)遠(yuǎn)程庫(kù),然而只能clone master分支,但是工作需要在dev分支上所以你得創(chuàng)建一個(gè)dev分支:git branch origin/dev。在工作完成后git push origin dev,假如這個(gè)時(shí)候你的同事也和你修改了同一個(gè)文檔并在push就會(huì)產(chǎn)生前面說(shuō)的分支沖突,這時(shí)候:git push origin devTogithub.com:michaelliao/learngit.git ! [rejected] dev -> dev (non-fast-forward)error: failedtopushsomerefsto'git@github.com:michaelliao/learngit.git'hint: Updates were rejected because the tipofyourcurrentbranchisbehindhint: its remote counterpart. Integrate the remote changes (e.g.hint:'git pull ...') before pushing again.hint: See the'Note about fast-forwards'in'git push --help'fordetails,根據(jù)提示git pull(獲取origin/dev的文檔),并手動(dòng)修改分支沖突再push。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Git必須知道當(dāng)前版本是哪個(gè)版本,在Git中,用HEAD表示當(dāng)前版本,,上一個(gè)版本就是HEAD,上上一個(gè)版本就是H...
    Smallwolf_JS閱讀 307評(píng)論 0 0
  • Git 基礎(chǔ) 基本原理 客戶(hù)端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)。這樣一來(lái),任何一處協(xié)同...
    __silhouette閱讀 16,203評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶(hù)端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來(lái)...
    sunnyghx閱讀 4,155評(píng)論 0 11
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj閱讀 2,952評(píng)論 1 11
  • 前幾次錄課,都是找的九一班的學(xué)生,不僅我,別的老師也是這樣,畢竟九一的學(xué)生比較活躍。這次又要錄課,我決定用九二的學(xué)...
    Fantali閱讀 110評(píng)論 0 0

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