git的使用

1.設(shè)置

初次使用需要設(shè)置姓名和郵箱
git config --global user.name "git用戶名"
git config --global user.email 郵箱地址

2.克隆 [需要配置ssh:http://www.reibang.com/p/9107461629cf ]

git clone git@github.com:git用戶名/文件名.git

3.添加文件并提交

touch a.md (添加新文件)
echo "hello" > a.md (編輯內(nèi)容荒澡,或者vim a.md忘分,:wq保存并退出)
git status (查看狀態(tài))
git add . (提交的文件的信息添加到索引庫中)
git commit -am "add a.md" (將依據(jù)索引庫中的內(nèi)容來進行文件的提交到暫存區(qū))
git push (推送到git遠程,*如果報錯用下面代碼玛界。)

  • *git push origin master (把當(dāng)前本地庫里的改動推送到遠程庫(origin)的master 分支)
4. 在 git 遠程改了內(nèi)容棵逊,再新建提交之前應(yīng) git pull

git pull (從遠程倉庫變動更新合并到本地伤疙。)
vim a.md (編輯內(nèi)容,:wq并保存退出辆影。)
git add .
git commit -am "add a.md"
git push

5.刪除文件

ls (查看當(dāng)前所有文件)
rm b.md (刪除b.md文件)
git add .
git commit -am "add d.md"
git push

6.先在遠程建立新倉庫徒像,終端新建子目錄到遠程

cd ..
mkdir a (建立子目錄a)
cd a
git init (初始化,*必須之前沒有倉庫蛙讥,而且clone時不能用锯蛀。)
ls -a
git status
git add .
git commit -am "add init"
git remote add origin git遠程空倉庫地址 (這里把遠程庫的地址添加個標(biāo)簽叫origin)
git push origin master (推送到遠程庫地址)

7.git可以推送到任何有權(quán)限的網(wǎng)站(新浪,conding次慢,等)

git remote -v (查看本地庫里記錄的遠程庫地址==標(biāo)簽)
git remote add origin git遠程地址(這里把遠程庫的地址添加個標(biāo)簽叫origin)
git push origin master (推送到遠程庫地址)

8.改地址(標(biāo)簽)

git push -f origin master (慎用炬太,這樣會強制推送捶障,會覆蓋別人的代碼)
git remote add gitlab git遠程地址 (在添加一個遠程庫的標(biāo)簽)
git push gitlab master

git remote remove gitlab ( 刪除gitlab 標(biāo)簽)
git remote set-url origin git遠程地址(修改origin標(biāo)簽對應(yīng)的地址)
git remote rename gitlab coding (把 gitlab 標(biāo)簽改名為coding)

9.分支操作

git branch -a (查看分支,*為當(dāng)前分支,綠色:本地分支熊泵;紅色:遠程分支;)
git branch dev (創(chuàng)建本地庫dev 分支)
git checkout dev (切換到dev)
touch c.md
git add .
git commit -am "add c.md" (暫存)
git push origin dev (推送)

git checkout master (切換到主桿上)
git master dev (把dev分支內(nèi)容合并到master上)
git push origin master (推送git遠程倉庫)

10.沖突
  • 修改沖突文件
  • 重新提交


    pull沖突解決方案.png

附:
兩個用戶修改了同一個文件的同一塊區(qū)域赦肋,git會報告內(nèi)容沖突第队。http://blog.csdn.net/mad1989/article/details/16885569
http://blog.csdn.net/u012556150/article/details/50736896
廖雪峰的Git基礎(chǔ)教程
查看、添加纷闺、提交算凿、刪除、找回犁功,重置修改文件

git help <command> # 顯示command的help

git show # 顯示某次提交的內(nèi)容 git show $id

git co -- <file> # 拋棄工作區(qū)修改

git co . # 拋棄工作區(qū)修改

git add <file> # 將工作文件修改提交到本地暫存區(qū)

git add . # 將所有修改過的工作文件提交暫存區(qū)

git rm <file> # 從版本庫中刪除文件

git rm <file> --cached # 從版本庫中刪除文件氓轰,但不刪除文件

git reset <file> # 從暫存區(qū)恢復(fù)到工作文件

git reset -- . # 從暫存區(qū)恢復(fù)到工作文件

git reset --hard # 恢復(fù)最近一次提交過的狀態(tài),即放棄上次提交后的所有本次修改

git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"

git ci --amend # 修改最后一次提交記錄

git revert <$id> # 恢復(fù)某次提交的狀態(tài)浸卦,恢復(fù)動作本身也創(chuàng)建次提交對象

git revert HEAD # 恢復(fù)最后一次提交的狀態(tài)

查看文件diff

git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異 git diff

git diff <id1> <id2> # 比較兩次提交之間的差異

git diff <branch1>..<branch2> # 在兩個分支之間比較

git diff --staged # 比較暫存區(qū)和版本庫差異

git diff --cached # 比較暫存區(qū)和版本庫差異

git diff --stat # 僅僅比較統(tǒng)計信息

查看提交記錄

git log git log <file> # 查看該文件每次提交記錄

git log -p <file> # 查看每次詳細修改內(nèi)容的diff

git log -p -2 # 查看最近兩次詳細修改內(nèi)容的diff

git log --stat #查看提交統(tǒng)計信息

tig

Mac上可以使用tig代替diff和log署鸡,brew install tig

Git 本地分支管理

查看、切換、創(chuàng)建和刪除分支

git br -r # 查看遠程分支

git br <new_branch> # 創(chuàng)建新的分支

git br -v # 查看各個分支最后提交信息

git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支

git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支

git co <branch> # 切換到某個分支

git co -b <new_branch> # 創(chuàng)建新的分支靴庆,并且切換過去

git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch

git co $id # 把某次歷史提交記錄checkout出來时捌,但無分支信息,切換到其他分支會自動刪除

git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來炉抒,創(chuàng)建成一個分支

git br -d <branch> # 刪除某個分支

git br -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)

分支合并和rebase

git merge <branch> # 將branch分支合并到當(dāng)前分支

git merge origin/master --no-ff # 不要Fast-Foward合并奢讨,這樣可以生成merge提交

git rebase master <branch> # 將master rebase到branch,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch>

Git補丁管理(方便在多臺機器上開發(fā)同步時用)

git diff > ../sync.patch # 生成補丁

git apply ../sync.patch # 打補丁

git apply --check ../sync.patch #測試補丁能否成功

Git暫存管理

git stash # 暫存

git stash list # 列所有stash

git stash apply # 恢復(fù)暫存的內(nèi)容

git stash drop # 刪除暫存區(qū)

Git遠程分支管理

git pull # 抓取遠程倉庫所有分支更新并合并到本地

git pull --no-ff # 抓取遠程倉庫所有分支更新并合并到本地焰薄,不要快進合并

git fetch origin # 抓取遠程倉庫更新

git merge origin/master # 將遠程主分支合并到本地當(dāng)前分支

git co --track origin/branch # 跟蹤某個遠程分支創(chuàng)建相應(yīng)的本地分支

git co -b <local_branch> origin/<remote_branch> # 基于遠程分支創(chuàng)建本地分支拿诸,功能同上

git push # push所有分支

git push origin master # 將本地主分支推到遠程主分支

git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創(chuàng)建,用于初始化遠程倉庫)

git push origin <local_branch> # 創(chuàng)建遠程分支塞茅, origin是遠程倉庫名

git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠程分支

git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>)亩码,然后再push刪除遠程分支

Git遠程倉庫管理

GitHub

git remote -v # 查看遠程服務(wù)器地址和倉庫名稱

git remote show origin # 查看遠程服務(wù)器倉庫狀態(tài)

git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址

git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址(用于修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫

創(chuàng)建遠程倉庫

git clone --bare robbin_site robbin_site.git # 用帶版本的項目創(chuàng)建純版本倉庫

scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務(wù)器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫

git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址

git push -u origin master # 客戶端首次提交

git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,并且track

git remote set-head origin master # 設(shè)置遠程倉庫的HEAD指向master分支

也可以命令設(shè)置跟蹤遠程庫和本地庫

git branch --set-upstream master origin/master

git branch --set-upstream develop origin/develop查看野瘦、添加蟀伸、提交、刪除缅刽、找回啊掏,重置修改文件

git help <command> # 顯示command的help

git show # 顯示某次提交的內(nèi)容 git show $id

git co -- <file> # 拋棄工作區(qū)修改

git co . # 拋棄工作區(qū)修改

git add <file> # 將工作文件修改提交到本地暫存區(qū)

git add . # 將所有修改過的工作文件提交暫存區(qū)

git rm <file> # 從版本庫中刪除文件

git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件

git reset <file> # 從暫存區(qū)恢復(fù)到工作文件

git reset -- . # 從暫存區(qū)恢復(fù)到工作文件

git reset --hard # 恢復(fù)最近一次提交過的狀態(tài)衰猛,即放棄上次提交后的所有本次修改

git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"

git ci --amend # 修改最后一次提交記錄

git revert <$id> # 恢復(fù)某次提交的狀態(tài)迟蜜,恢復(fù)動作本身也創(chuàng)建次提交對象

git revert HEAD # 恢復(fù)最后一次提交的狀態(tài)

查看文件diff

git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異 git diff

git diff <id1> <id2> # 比較兩次提交之間的差異

git diff <branch1>..<branch2> # 在兩個分支之間比較

git diff --staged # 比較暫存區(qū)和版本庫差異

git diff --cached # 比較暫存區(qū)和版本庫差異

git diff --stat # 僅僅比較統(tǒng)計信息

查看提交記錄

git log git log <file> # 查看該文件每次提交記錄

git log -p <file> # 查看每次詳細修改內(nèi)容的diff

git log -p -2 # 查看最近兩次詳細修改內(nèi)容的diff

git log --stat #查看提交統(tǒng)計信息

tig

Mac上可以使用tig代替diff和log,brew install tig

Git 本地分支管理

查看啡省、切換娜睛、創(chuàng)建和刪除分支

git br -r # 查看遠程分支

git br <new_branch> # 創(chuàng)建新的分支

git br -v # 查看各個分支最后提交信息

git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支

git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支

git co <branch> # 切換到某個分支

git co -b <new_branch> # 創(chuàng)建新的分支,并且切換過去

git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch

git co $id # 把某次歷史提交記錄checkout出來卦睹,但無分支信息畦戒,切換到其他分支會自動刪除

git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創(chuàng)建成一個分支

git br -d <branch> # 刪除某個分支

git br -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)

** 分支合并和rebase**

git merge <branch> # 將branch分支合并到當(dāng)前分支

git merge origin/master --no-ff # 不要Fast-Foward合并结序,這樣可以生成merge提交

git rebase master <branch> # 將master rebase到branch障斋,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch>

** Git補丁管理(方便在多臺機器上開發(fā)同步時用)**

git diff > ../sync.patch # 生成補丁

git apply ../sync.patch # 打補丁

git apply --check ../sync.patch #測試補丁能否成功

** Git暫存管理**

git stash # 暫存

git stash list # 列所有stash

git stash apply # 恢復(fù)暫存的內(nèi)容

git stash drop # 刪除暫存區(qū)

Git遠程分支管理

git pull # 抓取遠程倉庫所有分支更新并合并到本地

git pull --no-ff # 抓取遠程倉庫所有分支更新并合并到本地,不要快進合并

git fetch origin # 抓取遠程倉庫更新

git merge origin/master # 將遠程主分支合并到本地當(dāng)前分支

git co --track origin/branch # 跟蹤某個遠程分支創(chuàng)建相應(yīng)的本地分支

git co -b <local_branch> origin/<remote_branch> # 基于遠程分支創(chuàng)建本地分支徐鹤,功能同上

git push # push所有分支

git push origin master # 將本地主分支推到遠程主分支

git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創(chuàng)建垃环,用于初始化遠程倉庫)

git push origin <local_branch> # 創(chuàng)建遠程分支, origin是遠程倉庫名

git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠程分支

git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>)返敬,然后再push刪除遠程分支

Git遠程倉庫管理

GitHub

git remote -v # 查看遠程服務(wù)器地址和倉庫名稱

git remote show origin # 查看遠程服務(wù)器倉庫狀態(tài)

git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址

git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址(用于修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫

創(chuàng)建遠程倉庫

git clone --bare robbin_site robbin_site.git # 用帶版本的項目創(chuàng)建純版本倉庫

scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務(wù)器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉庫

git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠程倉庫地址

git push -u origin master # 客戶端首次提交

git push -u origin develop # 首次將本地develop分支提交到遠程develop分支遂庄,并且track

git remote set-head origin master # 設(shè)置遠程倉庫的HEAD指向master分支

也可以命令設(shè)置跟蹤遠程庫和本地庫

git branch --set-upstream master origin/master

git branch --set-upstream develop origin/develop

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市劲赠,隨后出現(xiàn)的幾起案子涛目,更是在濱河造成了極大的恐慌秸谢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霹肝,死亡現(xiàn)場離奇詭異钮追,居然都是意外死亡,警方通過查閱死者的電腦和手機阿迈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轧叽,“玉大人苗沧,你說我怎么就攤上這事√可梗” “怎么了待逞?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長网严。 經(jīng)常有香客問我识樱,道長,這世上最難降的妖魔是什么震束? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任怜庸,我火速辦了婚禮,結(jié)果婚禮上垢村,老公的妹妹穿的比我還像新娘割疾。我一直安慰自己,他們只是感情好嘉栓,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布宏榕。 她就那樣靜靜地躺著,像睡著了一般侵佃。 火紅的嫁衣襯著肌膚如雪麻昼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天馋辈,我揣著相機與錄音抚芦,去河邊找鬼。 笑死迈螟,一個胖子當(dāng)著我的面吹牛燕垃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播井联,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼卜壕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烙常?” 一聲冷哼從身側(cè)響起轴捎,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤鹤盒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后侦副,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侦锯,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年秦驯,在試婚紗的時候發(fā)現(xiàn)自己被綠了尺碰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡译隘,死狀恐怖亲桥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情固耘,我是刑警寧澤题篷,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站厅目,受9級特大地震影響番枚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜损敷,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一葫笼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拗馒,春花似錦渔欢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至访诱,卻和暖如春垫挨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背触菜。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工九榔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涡相。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓哲泊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親催蝗。 傳聞我的和親對象是個殘疾皇子切威,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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