Git 使用

簡介

Git 是一個(gè)版本控制系統(tǒng)隘膘,功能類似 SVN疑故、CVS,相比我之前使用過的 SVN弯菊,他功能更強(qiáng)大纵势,比如離線使用踱阿、分支邏輯等。

基礎(chǔ)操作

git clone: 克隆遠(yuǎn)程資料庫
git checkout: 將所有文件重置到某個(gè) commit 之前的版本
git init : 初始化當(dāng)前目錄(產(chǎn)生 .git 目錄)
git status <-s>: 當(dāng)前 git 目錄的狀態(tài)信息<short 格式輸出>
git add: 將文件從 Working directory 添加到 Staging area
git commit: 將文件從 Working directory 添加到 Repository (提交信息樣式)
git log: 獲取歷史 commit 信息(ID/Author/Date/Commit Files)

修改撤銷

git checkout -- xx:在 Working directory 重置修改(即是用版本庫里的版本替換工作區(qū)的版本钦铁,無論工作區(qū)是修改還是刪除软舌,都可以“一鍵還原”)
git reset HEAD xx:在 add 到 Staging area 但未 commit,可取消掉 add 操作
git reset HEAD~1:往上撤回一次提交(Repository)牛曹,不保存修改歷史(本地處理方案佛点,僅僅是 HEAD 指針的指向修改)

  • git reset --hard commit_id 重置到某一次提交(可以往前或者往后)
  • git reflog 查看命令歷史

git revert HEAD:往上撤回,但屬于往后新建提交節(jié)點(diǎn)(遠(yuǎn)程處理方案)

修改對比

git diff id_1 id_2: 獲取 id_2 中對 id_1 的變更內(nèi)容(類似 Linux 命令 diff -u a b

image.png

  • 第一行是比較的文件信息
  • 第二行表示兩個(gè)版本的git哈希值(index區(qū)域的8aa8763對象黎比,與工作目錄區(qū)域的88394ef對象進(jìn)行比較)超营,最后的六位數(shù)字是對象的模式(普通文件,644權(quán)限)
  • --- 表示刪除阅虫,+++ 表示新增
  • @@ -1,3 +1,7 @@ 表示 第一個(gè)文件第一行連續(xù) 3 行發(fā)生變化演闭,第二個(gè)文件第 3 行連續(xù) 7 行發(fā)生變化

git diff: 不帶參數(shù),獲取 Working directory 中未添加到 Staging area 中的文件差異
git diff --stage: 獲取 Repository 與 Staging area 中文件差異

image.png

git show commit_id: 獲取 commit_id 與其父級(jí)提交中的更改(省略 commit_id 則默認(rèn)為最近的)

分支操作

git branch <-a>: 查看本項(xiàng)目分支<遠(yuǎn)程分支>
git branch branch_name: 新建分支
git checkout branch_name: 切換分支(聯(lián)系到 HEAD 的指向)
git checkout -b branch_name: 新建并切換至分支 branch_name
git branch -d branch_name: 刪除分支標(biāo)簽(保留 commit 信息)
git merge branch_a branch_b: 合并分支 a 和 b

  • 添加 a/b 中相對父級(jí)中不存在的添加提交
  • 刪除 a/b 中相對父級(jí)中的刪除提交
  • 當(dāng) a/b 中出現(xiàn)沖突颓帝,人工處理
 <<<<<<<HEAD
            my code
 ||||||| merged common arcestors
            origin version code
=======
            current master code
>>>>>>>master

日志操作

git log: 獲取歷史 commit 和分支合并信息<只展示 commit id 和 commit 說明

  • git log --[pretty=]oneline 每次提交日志顯示一行
  • git log --graph 詳細(xì)日志左邊多了一列線條區(qū)分每次提交

git rebase:變基

遠(yuǎn)程操作

git remote <-v>: 獲取當(dāng)前遠(yuǎn)程資料庫<詳細(xì)信息>
git remote add <origin> git@github.com:xxx/xx.git: 添加遠(yuǎn)程資料庫本地名稱為 <origin> (默認(rèn))
git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git:添加上游遠(yuǎn)程資料庫
git push origin master: 推送 master 分支到 origin 遠(yuǎn)程資料庫
git pull orgin master: 拉取并合并到本地 master 分支

#等價(jià)于 fetch + merge
git fetch origin  #拉取遠(yuǎn)程資料庫到本地 origin/master
git merge master origin/master #更新合并本地 master 分支

當(dāng)多人協(xié)作開發(fā)的時(shí)候米碰,一般不直接 push master 分支,而是通過 pull master 拉取最新的 master 分支到本地购城,然后與本地分支合并同時(shí)處理可能存在的 conflict 吕座,再 push 本地分支到遠(yuǎn)程資料庫,最后提出 pull request 請求合并到 master 分支瘪板。

Git error

should not be doing an octopus : 合并多個(gè)不同代碼版本的一種策略(octopus)吴趴,如果不適合的情況下使用,則出現(xiàn)此消息
You are in 'detached' HEAD' state : 重置到之前的版本出現(xiàn)此提示消息(git reset --hard commit_id 回退)
fatal: you current branch 'master' does not have any commits yet : (HEAD 是當(dāng)前提交的名稱)當(dāng)沒有任何提交情況下執(zhí)行 git log 出現(xiàn)此錯(cuò)誤

如果同步 fork 的倉庫

git fetch upstream
git  merge upstream/master
git push origin master
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篷帅,一起剝皮案震驚了整個(gè)濱河市史侣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌魏身,老刑警劉巖惊橱,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箭昵,居然都是意外死亡税朴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門家制,熙熙樓的掌柜王于貴愁眉苦臉地迎上來正林,“玉大人,你說我怎么就攤上這事颤殴∶倮” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵涵但,是天一觀的道長杈绸。 經(jīng)常有香客問我帖蔓,道長,這世上最難降的妖魔是什么瞳脓? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任塑娇,我火速辦了婚禮,結(jié)果婚禮上劫侧,老公的妹妹穿的比我還像新娘埋酬。我一直安慰自己,他們只是感情好烧栋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布写妥。 她就那樣靜靜地躺著,像睡著了一般审姓。 火紅的嫁衣襯著肌膚如雪耳标。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天邑跪,我揣著相機(jī)與錄音,去河邊找鬼呼猪。 笑死画畅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宋距。 我是一名探鬼主播轴踱,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谚赎!你這毒婦竟也來了淫僻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤壶唤,失蹤者是張志新(化名)和其女友劉穎雳灵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闸盔,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悯辙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迎吵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躲撰。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖击费,靈堂內(nèi)的尸體忽然破棺而出拢蛋,到底是詐尸還是另有隱情,我是刑警寧澤蔫巩,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布谆棱,位于F島的核電站快压,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏础锐。R本人自食惡果不足惜嗓节,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望皆警。 院中可真熱鬧拦宣,春花似錦、人聲如沸信姓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽意推。三九已至豆瘫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菊值,已是汗流浹背外驱。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腻窒,地道東北人昵宇。 一個(gè)月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像儿子,于是被迫代替她去往敵國和親瓦哎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

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

  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站柔逼,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么蒋譬? Git是目前世界上最先...
    橫渡閱讀 3,957評論 3 27
  • 昨天在同事電腦上操作了一把cherry-pick代碼,發(fā)現(xiàn)很多功能不用,就慢慢忘記了,梳理了下流程圖: git c...
    gogoingmonkey閱讀 670評論 0 0
  • 本文作者陳云峰,轉(zhuǎn)載請注明愉适。 這篇文章記錄個(gè)人常用的一些命令犯助,和記不住的一些命令,轉(zhuǎn)載了并不斷更新维咸。 Git官網(wǎng) ...
    陳云峰閱讀 2,816評論 0 24
  • 那天收拾包腰湾,看到了一張火車票雷恃,雖是一張普通的火車票,與我而言意義重大费坊。因?yàn)樗够保业娜松辛撕芏嗖煌业谝淮谓俗?..
    235cfa1475f3閱讀 172評論 0 0
  • “落霞與孤鶩齊飛两残,秋水共長天一色”出自王勃的《滕王閣序》,這一聯(lián)一直以來倍受后人推崇把跨。然而關(guān)于“落霞”教科書上的解...
    肖十一郎_2e7a閱讀 7,877評論 0 3