Git的使用小結(jié)

初始化

首先,你需要執(zhí)行下面兩條命令,作為git的基礎(chǔ)配置,作用是告訴git你是誰,你輸入的信息將出現(xiàn)在你創(chuàng)建的提交中.

git config --global user.name "你的名字或昵稱"
git config --global user.email "你的郵箱"

然后在你的需要初始化版本庫的文件夾中執(zhí)行

git init 
git remote add origin http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git

這樣就完成了一次版本你的初始化绵跷,執(zhí)行 了git init命令的目錄下會(huì)生成一個(gè).git目錄肚吏。
這個(gè).git目錄存著管理當(dāng)前目錄內(nèi)容所需的倉庫數(shù)據(jù)。
當(dāng)前目錄也被稱為“附屬于該倉庫的工作樹”
git status 可查看工作樹和倉庫的狀態(tài)

基本使用

git add 向暫存區(qū)(Stage 或 Index)添加文件
如果只是在工作樹中創(chuàng)建文件瘦棋,該文件不會(huì)被記入Git倉庫的版本管理對(duì)象中猖闪,此時(shí)輸入git status鲜棠,會(huì)看到剛剛創(chuàng)建的文件在Untracked files里,要想讓新建的文件成為Git倉庫管理的對(duì)象培慌,需要使用git add豁陆。暫存區(qū)是提交之前的臨時(shí)區(qū)域。
git commit -m XXXX 將暫存區(qū)的內(nèi)容實(shí)際保存到倉庫的歷史記錄中吵护。
git commit -amend 修改上一條提交信息盒音。
git log 查看提交日志
git log XXX 顯示指定文件的日志
git log -p XXX 顯示文件的改動(dòng)
git log --graph 以圖表形式查看分支
git diff 查看工作樹、暫存區(qū)馅而、最新提交之間的差別
git diff HEAD 查看工作樹祥诽、最新提交之間的差別

分支相關(guān)

git branch -a 顯示分支列表 -a 把遠(yuǎn)程分支也顯示出來
git checkout -b XXX **創(chuàng)建并切換分支 **
git branch XXX **創(chuàng)建分支 **
git checkout XXX **切換分支 ** git checkout - 切換到上個(gè)分支
git merge 合并分支 git merge --no-ff XXX分支 為了在歷史記錄中明確記錄下本次分支合并,我們需要?jiǎng)?chuàng)建并提交瓮恭,已經(jīng)在合并時(shí)加上 --no-ff

更改提交的操作

git reset --hard XXXXXXXXXXXXXXXX哈希值 去到某個(gè)狀態(tài)
git reflog查看當(dāng)前倉庫的操作日志
git clone http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git 克隆一個(gè)項(xiàng)目
git remote add origin http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git 添加遠(yuǎn)程倉庫

git push命令用于將本地分支的更新雄坪,推送到遠(yuǎn)程主機(jī)。它的格式與git pull命令相仿偎血。

$ git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>

注意诸衔,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠(yuǎn)程分支>:<本地分支>颇玷,而git push是<本地分支>:<遠(yuǎn)程分支>笨农。
如果省略遠(yuǎn)程分支名,則表示將本地分支推送與之存在”追蹤關(guān)系”的遠(yuǎn)程分支(通常兩者同名)帖渠,如果該遠(yuǎn)程分支不存在谒亦,則會(huì)被新建。
$ git push origin master
上面命令表示空郊,將本地的master分支推送到origin主機(jī)的master分支份招。如果后者不存在,則會(huì)被新建狞甚。
如果省略本地分支名锁摔,則表示刪除指定的遠(yuǎn)程分支,因?yàn)檫@等同于推送一個(gè)空的本地分支到遠(yuǎn)程分支哼审。
$ git push origin :master# 等同于$ git push origin --delete master
上面命令表示刪除origin主機(jī)的master分支谐腰。
如果當(dāng)前分支與遠(yuǎn)程分支之間存在追蹤關(guān)系孕豹,則本地分支和遠(yuǎn)程分支都可以省略。
$ git push origin
上面命令表示十气,將當(dāng)前分支推送到origin主機(jī)的對(duì)應(yīng)分支励背。
如果當(dāng)前分支只有一個(gè)追蹤分支,那么主機(jī)名都可以省略砸西。
$ git push
如果當(dāng)前分支與多個(gè)主機(jī)存在追蹤關(guān)系叶眉,則可以使用-u選項(xiàng)指定一個(gè)默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push芹枷。
$ git push -u origin master
上面命令將本地的master分支推送到origin主機(jī)衅疙,同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push了杖狼。
不帶任何參數(shù)的git push炼蛤,默認(rèn)只推送當(dāng)前分支妖爷,這叫做simple方式蝶涩。此外,還有一種matching方式絮识,會(huì)推送所有有對(duì)應(yīng)的遠(yuǎn)程分支的本地分支绿聘。Git 2.0版本之前,默認(rèn)采用matching方法次舌,現(xiàn)在改為默認(rèn)采用simple方式熄攘。如果要修改這個(gè)設(shè)置,可以采用git config命令彼念。
$ git config --global push.default matching# 或者$ git config --global push.default simple
還有一種情況挪圾,就是不管是否存在對(duì)應(yīng)的遠(yuǎn)程分支,將本地的所有分支都推送到遠(yuǎn)程主機(jī)逐沙,這時(shí)需要使用–all選項(xiàng)哲思。
$ git push --all origin
上面命令表示,將所有本地分支都推送到origin主機(jī)吩案。
如果遠(yuǎn)程主機(jī)的版本比本地版本更新棚赔,推送時(shí)Git會(huì)報(bào)錯(cuò),要求先在本地做git pull合并差異徘郭,然后再推送到遠(yuǎn)程主機(jī)靠益。這時(shí),如果你一定要推送残揉,可以使用–force選項(xiàng)胧后。
$ git push --force origin
上面命令使用–force選項(xiàng),結(jié)果導(dǎo)致在遠(yuǎn)程主機(jī)產(chǎn)生一個(gè)”非直進(jìn)式”的合并(non-fast-forward merge)抱环。除非你很確定要這樣做壳快,否則應(yīng)該盡量避免使用–force選項(xiàng)途样。
最后,git push不會(huì)推送標(biāo)簽(tag)濒憋,除非使用–tags選項(xiàng)何暇。
$ git push origin --tags
有時(shí)候當(dāng)遠(yuǎn)程xxx分支被刪掉了后,用git branch -a你還可以看到本地還有remote/origin/xxx這個(gè)分支凛驮,那么你可以使用git fetch -p 這個(gè)命令可以幫你同步最新的遠(yuǎn)程分支裆站,并刪掉本地被刪了的遠(yuǎn)程分支

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市黔夭,隨后出現(xiàn)的幾起案子宏胯,更是在濱河造成了極大的恐慌,老刑警劉巖本姥,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肩袍,死亡現(xiàn)場離奇詭異,居然都是意外死亡婚惫,警方通過查閱死者的電腦和手機(jī)氛赐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來先舷,“玉大人艰管,你說我怎么就攤上這事〗ǎ” “怎么了牲芋?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捺球。 經(jīng)常有香客問我缸浦,道長,這世上最難降的妖魔是什么氮兵? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任裂逐,我火速辦了婚禮,結(jié)果婚禮上胆剧,老公的妹妹穿的比我還像新娘絮姆。我一直安慰自己,他們只是感情好秩霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布篙悯。 她就那樣靜靜地躺著,像睡著了一般铃绒。 火紅的嫁衣襯著肌膚如雪鸽照。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天颠悬,我揣著相機(jī)與錄音矮燎,去河邊找鬼定血。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诞外,可吹牛的內(nèi)容都是我干的澜沟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼峡谊,長吁一口氣:“原來是場噩夢啊……” “哼茫虽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起既们,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤濒析,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后啥纸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體号杏,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年斯棒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盾致。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡名船,死狀恐怖绰上,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渠驼,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布鉴腻,位于F島的核電站迷扇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏爽哎。R本人自食惡果不足惜蜓席,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望课锌。 院中可真熱鬧厨内,春花似錦、人聲如沸渺贤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽志鞍。三九已至瞭亮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間固棚,已是汗流浹背统翩。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工仙蚜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厂汗。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓委粉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親娶桦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艳丛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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