git 學(xué)習(xí)筆記

工作區(qū) < - 緩沖區(qū) <- 版本庫(kù)

提交代碼的更改一共分2個(gè)階段版仔。

  • 1.從工作目錄游盲,提交到stage。
  • 2.從stage提交到master蛮粮。

從工作目錄提交到stage益缎,需要用add或者rm命令,只提交到stage然想,而沒有提交到master莺奔,是不會(huì)自動(dòng)同步到master的。
從stage提交到master用commit命令变泄。

兩種回退操作:

  • 1.stage回退到工作目錄, 是用來取消提交操作的;
  • 2.master回退到工作目錄, 是用來回滾操作的;

撤銷修改
git checkout -- xxx 讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)令哟。
git reset HEAD xxx可以把暫存區(qū)的修改撤銷掉

  • 場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí)杖刷,用命令git checkout -- file励饵。
  • 場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí)滑燃,想丟棄修改役听,分兩步,第一步用命令git reset HEAD file表窘,就回到了場(chǎng)景1典予,第二步按場(chǎng)景1操作。
  • 場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí)乐严,想要撤銷本次提交瘤袖,參考版本回退一節(jié),不過前提是沒有推送到遠(yuǎn)程庫(kù)昂验。
git init 初始化倉(cāng)庫(kù) 
git add 添加文件
git commit -m "描述" 上傳文件
git status 查看狀態(tài)
git dif 查看區(qū)別

git reset --hard HEAD^ 恢復(fù)到上一個(gè)版本
git reset --hard HEAD^^ 恢復(fù)到上上一個(gè)版本
git reset --hard HEAD~100 恢復(fù)到100之前的版本
git log #查看當(dāng)前版本及之前版本的id 加--pretty=oneline簡(jiǎn)化顯示
git log --pretty=oneline
git reflog #查看所有版本的id
git reset --hard xxx 根據(jù)git reflog得到的編號(hào)恢復(fù)到那個(gè)版本

刪除文件

git rm xxx
git commit -m "remove test.txt"
刪除錯(cuò)誤要還原
git checkout -- xxx
git checkout其實(shí)是用版本庫(kù)里的版本替換工作區(qū)的版本捂敌,無論工作區(qū)是修改還是刪除,都可以“一鍵還原”既琴。
已有的本地倉(cāng)庫(kù)與之關(guān)聯(lián)
git remote add origin git@github.com:jianpingye/learngit.git
去除本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)的關(guān)聯(lián)
git remote rm origin
git push -u origin master本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上 第一次
git push origin master本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上 

git clone克隆一個(gè)本地庫(kù)
git remote查看遠(yuǎn)程庫(kù)的信息
git remote -v 顯示更詳細(xì)的信息
git push origin branch-name從本地推送分支
git checkout -b branch-name origin/branch-name在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支
git branch --set-upstream branch-name origin/branch-name建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)

創(chuàng)建分支

git checkout -b dev   git checkout命令加上-b參數(shù)表示創(chuàng)建并切換占婉,相當(dāng)于以下兩條命令:
git branch dev 創(chuàng)建分支
git checkout dev 卻換分支
git branch命令查看當(dāng)前分支
git merge命令用于合并指定分支到當(dāng)前分支
git branch -d dev刪除分支

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

分支沖突:合并時(shí)顯示分支沖突先merge 后修改<<<<分支1 <<<<分支2 之間的沖突內(nèi)容,然后在提交. 當(dāng)前分支會(huì)比被合并的分支多commit一次
git log --graph --pretty=oneline --abbrev-commit  #查看分支情況
git merge --no-ff <name>  #禁用Fast forward,不刪除分支,合并后保留分支

BUG分支:正在dev分支工作,需要修改bug并提交,應(yīng)該先把dev當(dāng)前工作區(qū)stash儲(chǔ)藏起來.修改完bug提交后在使用 git stash pop恢復(fù)dev的內(nèi)容到工作區(qū).
git stash #儲(chǔ)藏當(dāng)前工作區(qū)
git stash list #查看
git stash apply <stashid> #恢復(fù)指定內(nèi)容到工作區(qū),不在stash內(nèi)刪除..stashid通過git stash list查詢
git stash drop <stashid>  #刪除
git stash pop  #恢復(fù)stash的內(nèi)容到工作區(qū),并在stash內(nèi)刪除

git tag <name>新建一個(gè)標(biāo)簽,默認(rèn)為HEAD甫恩,也可以指定一個(gè)commit id逆济;
建帶有說明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說明文字
git tag -a <tagname> -m "blablabla..."可以指定標(biāo)簽信息奖慌;

可以通過-s用私鑰簽名一個(gè)標(biāo)簽:
git tag -s <tagname> -m "blablabla..."可以用PGP簽名標(biāo)簽抛虫;
git tag可以查看所有標(biāo)簽。
git push origin <tagname>可以推送一個(gè)本地標(biāo)簽简僧;
git push origin --tags可以推送全部未推送過的本地標(biāo)簽建椰;
git tag -d <tagname>可以刪除一個(gè)本地標(biāo)簽;
git push origin :refs/tags/<tagname>可以刪除一個(gè)遠(yuǎn)程標(biāo)簽涎劈。

更新

git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地广凸,不會(huì)自動(dòng)merge
git fetch origin master
git log -p master..origin/master
git merge origin/master

首先從遠(yuǎn)程的origin的master主分支下載最新的版本到origin/master分支上
然后比較本地的master分支和origin/master分支的差別
最后進(jìn)行合并
git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地
git pull origin master
上述命令其實(shí)相當(dāng)于git fetch 和 git merge
在實(shí)際使用中阅茶,git fetch更安全一些
因?yàn)樵趍erge前蛛枚,我們可以查看更新情況,然后再?zèng)Q定是否合并

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脸哀,一起剝皮案震驚了整個(gè)濱河市蹦浦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撞蜂,老刑警劉巖盲镶,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蝌诡,居然都是意外死亡溉贿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門浦旱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宇色,“玉大人,你說我怎么就攤上這事颁湖⌒洌” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵甥捺,是天一觀的道長(zhǎng)抢蚀。 經(jīng)常有香客問我,道長(zhǎng)镰禾,這世上最難降的妖魔是什么皿曲? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮吴侦,結(jié)果婚禮上屋休,老公的妹妹穿的比我還像新娘。我一直安慰自己妈倔,他們只是感情好博投,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盯蝴,像睡著了一般毅哗。 火紅的嫁衣襯著肌膚如雪听怕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天虑绵,我揣著相機(jī)與錄音尿瞭,去河邊找鬼。 笑死翅睛,一個(gè)胖子當(dāng)著我的面吹牛声搁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捕发,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼疏旨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了扎酷?” 一聲冷哼從身側(cè)響起檐涝,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎法挨,沒想到半個(gè)月后谁榜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凡纳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年窃植,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荐糜。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巷怜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狞尔,到底是詐尸還是另有隱情丛版,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布偏序,位于F島的核電站页畦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏研儒。R本人自食惡果不足惜豫缨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望端朵。 院中可真熱鬧好芭,春花似錦、人聲如沸冲呢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至邻薯,卻和暖如春裙戏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厕诡。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工累榜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灵嫌。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓壹罚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親寿羞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子猖凛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Git教程 一、Git簡(jiǎn)介 1.1. Git的誕生1.2.集中式的vs分布式 二稠曼、安裝Git 三形病、創(chuàng)建版本庫(kù) 四、...
    曹淵說創(chuàng)業(yè)閱讀 951評(píng)論 0 2
  • 0. 前言 git在團(tuán)隊(duì)協(xié)作中有重要作用霞幅,是有必要進(jìn)行系統(tǒng)學(xué)習(xí)的一門工具。本篇是筆者學(xué)習(xí)git操作的備忘筆記量瓜,主要...
    dounine閱讀 995評(píng)論 0 2
  • 一司恳、常用終端指令 $ pwd用于查看當(dāng)前目錄 $ mkdir learngit 創(chuàng)建一個(gè)名為learngit的空目...
    天山雪蓮_38324閱讀 459評(píng)論 0 1
  • ----------------- Git 學(xué)習(xí) ------------------ Git 簡(jiǎn)介 Git...
    Junting閱讀 2,237評(píng)論 0 3
  • git學(xué)習(xí)筆記 聲明 本文是本人學(xué)習(xí)Git過程中所做的筆記,以便日后查閱,文中多有錯(cuò)漏之處,不建議用作學(xué)習(xí)材料,文...
    sayonara_yoyo閱讀 687評(píng)論 0 1