Git 常用命令

一嚼吞、基本操作

  1. git init 來在目錄中創(chuàng)建新的 Git 倉庫舱禽。 你可以在任何時候、任何目錄中這么做翔始,完全是本地化的城瞎。

  2. 使用 git clone 拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目全谤,或者進行修改认然。

  3. 使用 git add 添加需要追蹤的新文件和待提交的更改到暫存區(qū)漫萄, 然后使用 git statusgit diff 查看有何改動, 最后用 git commit 將你的快照記錄毕骡。這就是你要用的基本流程未巫,絕大部分時候都是這樣的。

  4. 在當前工作目錄執(zhí)行命令:git add . Git 會遞歸地將你執(zhí)行命令時所在的目錄中的所有文件添加上去.

  5. 執(zhí)行 git status 以查看在你上次提交之后有啥被修改或者臨時提交了启昧, 從而決定自己是否需要提交一次快照叙凡,同時也能知道有什么改變被記錄進去了。

  6. git diff 顯示已寫入緩存與已修改但尚未寫入緩存的改動的區(qū)別,執(zhí)行 git diff 來查看執(zhí)行 git status 的結果的詳細信息 —— 一行一行地顯示這些文件是如何被修改或寫入緩存的密末。
    git diff HEAD —— 顯示的是工作目錄與上一次提交的更新的區(qū)別握爷,無視緩存跛璧。

  7. git commit -a 自動將在提交前將已記錄、修改的文件放入緩存區(qū),基本上這句話的意思就是新啼,為任何已有記錄的文件執(zhí)行 git add .不過你仍然需要執(zhí)行 git add 文件名 來添加新文件

  8. git 對本地文件的文件名的大小寫是不敏感額追城,如果修改文件名的大小寫不會添加修改,命令行運行下列代碼燥撞,強制git對大小寫敏感
    $ git config core.ignorecase false

  9. git remote 命令列出所有遠程主機 使用-v選項座柱,可以參看遠程主機的網(wǎng)址

二物舒、 常用命令

1. git branch

【 origin 指的是主機名 master 指的是分支名】

git branch -r 查看遠程分支

git branch -a 查看所有分支

git branch -d (branch name) 刪除本地分支

git branch (new-branch -name) 創(chuàng)建分支

git branch -v 查看各個分支最后一個提交對象的信息

git branch -m <old_branch_name> <new_branch_name> 重命名本地分支

2. git push

$ git push :

git push <遠程主機名> <本地分支名>:<遠程分支名>

執(zhí)行 git push [alias 遠程倉庫名] [branch 遠程分支名]涵叮,就會將你的當前 分支推送成為 [alias] 遠端上的 [branch] 分支。 讓我們試試推送我們的主分支到先前添加的“github”遠端倉庫上去舀瓢。

$ git push origin master 如果省略遠程分支名,則表示將本地分支推送與之存在"追蹤關系"的遠程分支(通常兩者同名),如果該遠程分支不存在蛇摸,則會被新建。

不帶任何參數(shù)的git push蒋困,默認只推送當前分支颜说,這叫做simple方式。

git push origin --delete <branchName> 刪除一個遠程分支

git push origin :<branchName> 推送一個空分支到遠程分支,其實就相當于刪除遠程分支

3. git pull

$ git pull

比如拟蜻,取回origin主機的dev分支,與本地的master分支合并,需要寫成下面這樣稿蹲。git pull <遠程主機名> <遠程分支名>:<本地分支名>

$ git pull origin dev:master

上面命令表示,取回origin/dev分支,再與當前master分支合并熬拒。實質上欢瞪,這等同于先做git fetch遣鼓,再做git merge回懦。

$ git fetch

$ git fetch origin dev

$ git merge origin/dev 合并fetch下來的遠程dev分支數(shù)據(jù)到當前分支上

git fetch origin 遠程分支名:本地分支名

上面命令表示,取回origin/next分支谭期,再與當前分支合并胀瞪。實質上,這等同于先做git fetch幔摸,再做git merge驱负。

4. git checkout

git checkout -b [分支名] [遠程主機名]/[分支名]

5. git log

git log --oneline 顯示log一行摘要

git log --author="author-name" 顯示某個用戶提交的log

git log -p (file-name) 某個文件的提交log

6. git tag

  • 列出現(xiàn)有標簽的命令$ git tag
  • 帶有通配符的列出命令$ git tag -l 'v1.4.2.*'
  • 新建標簽 $ git tag -a v1.4 -m 'my version 1.4'引號里面的是標簽說明
  • 把標簽推到git服務器上$ git push origin [tagname]
  • 一次推送所有本地新增的標簽到git服務器 git push origin --tags

7. git 追蹤關系

在某些場合酪术,Git會自動在本地分支與遠程分支之間,建立一種追蹤關系(tracking)。比如历帚,在git clone的時候谱煤,所有本地分支默認與遠程主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動”追蹤”origin/master分支缚柳。

Git也允許手動建立追蹤關系。

git branch --set-upstream master origin/dev

上面命令指定本地master分支追蹤遠程 origin/dev分支。

但是據(jù)說上面--set-upstream這個命令被廢棄了,建議使用--track 或者 --set-upstream-to來代替
git branch --set-upstream-to=origin/遠程分支名 本地分支名

如果當前分支與遠程分支存在追蹤關系,git pull就可以省略遠程分支名。

$ git pull origin

上面命令表示,本地的當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合并。

如何查看本地跟蹤分支對應的遠程分支

git branch -vv(兩個v)夯膀,就能夠看到本地分支跟蹤的遠程分支碟绑。

獲取遠程服務器上某個分支

加入服務器上被合作的伙伴新創(chuàng)建了一個分支押袍,我們可以通過如下方式來獲热:

$ git fetch origin

然后我門會獲取到新的分支的名字

值得注意的是宽闲,在 fetch操作下載好新的遠程分支之后围辙,你仍然無法在本地編輯該遠程倉庫中的分支。換句話說,在本例中铅匹,你不會有一個新的new_added_branch分支押赊,有的只是一個你無法移動的 origin/new_added_branch 指針涕俗。

如果要把該內(nèi)容合并到當前分支再姑,可以運行 git merge origin/new_added_branch滔驶。如果想要一份自己的 new_added_branch 來開發(fā)瓜浸,可以在遠程分支的基礎上分化出一個新的分支來:

$ git checkout -b new_added_branch origin/new_added_branch
Branch new_added_branch set up to track remote branch refs/remotes/origin/new_added_branch.
Switched to a new branch "new_added_branch"

這會切換到新建的 new_added_branch 本地分支雇寇,其內(nèi)容同遠程分支 origin/new_added_branch 一致囚痴,這樣你就可以在里面繼續(xù)開發(fā)了。

三、沖突解決

如果沒有沖突的話映皆,merge完成轰枝。有沖突的話捅彻,git會提示那個文件中有沖突,比如有如下沖突:

<<<<<<< HEAD:test.c

printf (“test1″);

=======

printf (“test2″);

>>>>>>> issueFix:test.c

可以看到 ======= 隔開的上半部分鞍陨,是 HEAD(即 master 分支步淹,在運行 merge 命令時檢出的分支)中的內(nèi)容,下半部分是在 issueFix 分支中的內(nèi)容诚撵。解決沖突的辦法無非是二者選其一或者由你親自整合到一起缭裆。比如你可以通過把這段內(nèi)容替換為下面這樣來解決:

printf (“test2″);

這個解決方案各采納了兩個分支中的一部分內(nèi)容,而且刪除了 <<<<<<<寿烟,=======澈驼,和>>>>>>> 這些行。

在解決了所有文件里的所有沖突后筛武,運行git add 將把它們標記為已解決(resolved)缝其。

然后使用git commit命令進行提交,merge就算完成了

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徘六,一起剝皮案震驚了整個濱河市内边,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌待锈,老刑警劉巖漠其,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異炉擅,居然都是意外死亡辉懒,警方通過查閱死者的電腦和手機阳惹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門谍失,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莹汤,你說我怎么就攤上這事快鱼。” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵抹竹,是天一觀的道長线罕。 經(jīng)常有香客問我,道長窃判,這世上最難降的妖魔是什么钞楼? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮袄琳,結果婚禮上询件,老公的妹妹穿的比我還像新娘。我一直安慰自己唆樊,他們只是感情好宛琅,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逗旁,像睡著了一般嘿辟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上片效,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天红伦,我揣著相機與錄音,去河邊找鬼淀衣。 笑死色建,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的舌缤。 我是一名探鬼主播箕戳,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼国撵!你這毒婦竟也來了陵吸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤介牙,失蹤者是張志新(化名)和其女友劉穎壮虫,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體环础,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡囚似,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了线得。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饶唤。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贯钩,靈堂內(nèi)的尸體忽然破棺而出募狂,到底是詐尸還是另有隱情办素,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布祸穷,位于F島的核電站性穿,受9級特大地震影響,放射性物質發(fā)生泄漏雷滚。R本人自食惡果不足惜需曾,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祈远。 院中可真熱鬧胯舷,春花似錦、人聲如沸绊含。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躬充。三九已至逃顶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間充甚,已是汗流浹背以政。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伴找,地道東北人盈蛮。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像技矮,于是被迫代替她去往敵國和親抖誉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

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

  • 分布式版本管理工具 git屬于分布式 svn集中式 git安裝 git初始化一個倉庫 其實就是創(chuàng)建了一個.git隱...
    SnowDragonYY閱讀 1,508評論 0 0
  • 一衰倦、 Git 命令初識 在正式介紹Git命令之前袒炉,先介紹一下Git 的基本命令和操作,對Git命令有一個總體的認識...
    子瘋zp閱讀 69,866評論 1 18
  • 初始化配置 #配置使用git倉庫的人員姓名 git config --global user.name "Your...
    賤精先玍丶閱讀 335評論 0 0
  • 還不到一小時樊零,我來到了新的一天的起 始 夜很深了我磁,可是人睡不著 我好不容易學會了哭卻也到了...
    叨叨走走閱讀 187評論 0 0
  • 3. “你是誰?”小葉站在大門口驻襟,朝屋里的男孩問道夺艰。 小男孩沒有馬上回答她,只是停了手中的筆沉衣,轉頭看著她郁副。一個穿著...
    暴走小紅帽閱讀 327評論 0 2