Git筆記

資料

首次創(chuàng)建

創(chuàng)建用戶

git config --global user.name "Tony"
git config --global user.email "tony@gmail.com"

進(jìn)入代碼目錄,創(chuàng)建代碼倉(cāng)庫(kù)

git init

添加文件到倉(cāng)庫(kù)

git add AndroidManifest.xml
git add src
git add .

提交

git commit -m "First commit."

忽略文件或目錄:

.gitignore

管理修改歷史

版本號(hào)

在Git中,用HEAD表示當(dāng)前版本埂软,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣)瘟仿,上一個(gè)版本就是HEAD^感耙,上上一個(gè)版本就是HEAD^^企垦,當(dāng)然往上100個(gè)版本寫100個(gè)^比較容易數(shù)不過來涎永,所以寫成HEAD~100斯碌。

HEAD相當(dāng)于一個(gè)指針,指向當(dāng)前的工作于哪個(gè)commit,在你跳轉(zhuǎn)到某個(gè)commit后,HEAD就指向那個(gè)commit,所以速度跳轉(zhuǎn)版本的速度非骋凰溃快.

stage/unstaged

add之后進(jìn)入stage,commit后進(jìn)入branch.

查看歷史提交信息

git log
git log --pretty=oneline --abbrev-commit

如果我們只想查看其中一條記錄,可以在命令中指定該記錄的 id傻唾,并加上-1 參數(shù)表示我們只想看到一行記錄

git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1

而如果想要查看這條提交記錄具體修改了什么內(nèi)容投慈, 可以在命令中加入-p參數(shù)

git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1 -p

查看狀態(tài)

git status

查看本地文件修改了哪些地方。

git diff src/com/example/providertest/MainActivity.java

回退到某個(gè)版本

撤銷未add過的文件的修改冠骄,就是丟棄所有的修改伪煤。

git checkout -- src/com/example/providertest/MainActivity.java

如果文件add過,先reset凛辣,再checkout:

git reset HEAD src/com/example/providertest/MainActivity.java
git checkout -- src/com/example/providertest/MainActivity.java

如果文件commit過抱既,reset --hard回退到上一個(gè)版本:

git log
git reset --hard 443ab205fac62b4316ca0f9188cd6b85fbc4a813 // 跳到某個(gè)版本
git reset --hard HEAD^ // 回到上個(gè)版本

前進(jìn)到某個(gè)版本

git reflog // 查看命令歷史,找到你要的commit id,然后用reset跳轉(zhuǎn).
git reset --hard xxxx // 跳到某個(gè)版本

git rm

遠(yuǎn)程協(xié)作

可以這樣說,如果你是一個(gè)人在開發(fā)扁誓,那么使用版本控制工具就遠(yuǎn)遠(yuǎn)無法發(fā)揮出它真正強(qiáng)大的功能防泵。

沒錯(cuò),所有版本控制工具最重要的一個(gè)特點(diǎn)就是可以使用它來進(jìn)行團(tuán)隊(duì)合作開發(fā)蝗敢。每個(gè)人的電腦上都會(huì)有一份代碼捷泞,當(dāng)團(tuán)隊(duì)的某個(gè)成員在自己的電腦上編寫完成了某個(gè)功能后,就將代碼提交到服務(wù)器寿谴,其他的成員只需要將服務(wù)器上的代碼同步到本地锁右,就能保證整個(gè)團(tuán)隊(duì)所有人的代碼都相同的。這樣的話,每個(gè)團(tuán)隊(duì)成員就可以各司其職骡湖,大家共同來完成一個(gè)較為龐大的項(xiàng)目贱纠。

git clone https://xxxxxxxxxxxxxxxx

git push origin master

git fetch origin master
git diff origin/master
git pull origin master(2in1)

git merge origin/master

托管到Git倉(cāng)庫(kù) 步驟

傻瓜式:

  1. 首先GitHub上新建repository

  2. git clone到本地target目錄

     git clone https://github.com/tony-green/coolweather.git
    
  3. 把本地項(xiàng)目的source code拷貝到本地target目錄

     git add .
     git commit -m "First commit."
     git push origin master
    

推送本地git倉(cāng)庫(kù)到遠(yuǎn)程:

git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master

遠(yuǎn)程clone

git clone git@github.com:michaelliao/gitskills.git

多人協(xié)作

  1. 查看遠(yuǎn)程庫(kù)信息,使用git remote -v响蕴;
  2. 本地新建的分支如果不推送到遠(yuǎn)程谆焊,對(duì)其他人就是不可見的;
  3. 從本地推送分支浦夷,使用git push origin branch-name辖试,如果推送失敗,先用git pull抓取遠(yuǎn)程的新提交劈狐;
  4. 在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支罐孝,使用git checkout -b branch-name origin/branch-name,本地和遠(yuǎn)程分支的名稱最好一致肥缔;
  5. 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)莲兢,使用git branch --set-upstream branch-name origin/branch-name
  6. 從遠(yuǎn)程抓取分支续膳,使用git pull改艇,如果有沖突,要先處理沖突坟岔。

Branch管理

查看有哪些branch:

git branch
git branch –a

創(chuàng)建新branch

git branch version1.0

切換新branch為工作branch

git checkout version1.0

創(chuàng)建并切換分支(2合1命令):

git checkout -b version1.0

merge來自new branch的修改:

git checkout master
git merge version1.0

刪除new branch:

git branch -d version1.0
git branch -D version1.0 // 強(qiáng)制刪除,丟棄修改

stash

stash的作用就是保存該branch的現(xiàn)場(chǎng),該branch的工作目錄用于他用:

git stash

用完后,需要回復(fù)現(xiàn)場(chǎng),接著之前的工作:

git stash list  // 查看
git stash apply // 恢復(fù)stash內(nèi)容
git stash drop  // 刪除stash內(nèi)容
git stash pop       // (以上2合1的命令)

標(biāo)簽管理

tag就是一個(gè)讓人容易記住的有意義的名字谒兄,它跟某個(gè)commit綁在一起。

創(chuàng)建標(biāo)簽:

git tag <name>
git tag v0.9 6224937 // 針對(duì)某個(gè)commit打標(biāo)簽

查看標(biāo)簽:

git tag
git show <tagname>

刪除標(biāo)簽:

git tag -d v0.1

操作:

命令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

$ git config --global color.ui true

$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch

參考: 配置方法

部署Git站點(diǎn)(tbd)

搭建Git服務(wù)器非常簡(jiǎn)單燕鸽,通常10分鐘即可完成;

要方便管理公鑰啼辣,用Gitosis绵咱;

要像SVN那樣變態(tài)地控制權(quán)限,用Gitolite熙兔。

如何架設(shè)git服務(wù)器? gogsnun

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艾恼,一起剝皮案震驚了整個(gè)濱河市住涉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钠绍,老刑警劉巖舆声,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡媳握,警方通過查閱死者的電腦和手機(jī)碱屁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛾找,“玉大人娩脾,你說我怎么就攤上這事〈蛎” “怎么了柿赊?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)幻枉。 經(jīng)常有香客問我碰声,道長(zhǎng),這世上最難降的妖魔是什么熬甫? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任胰挑,我火速辦了婚禮,結(jié)果婚禮上椿肩,老公的妹妹穿的比我還像新娘瞻颂。我一直安慰自己,他們只是感情好覆旱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布蘸朋。 她就那樣靜靜地躺著,像睡著了一般扣唱。 火紅的嫁衣襯著肌膚如雪藕坯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天噪沙,我揣著相機(jī)與錄音炼彪,去河邊找鬼。 笑死正歼,一個(gè)胖子當(dāng)著我的面吹牛辐马,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播局义,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喜爷,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了萄唇?” 一聲冷哼從身側(cè)響起檩帐,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎另萤,沒想到半個(gè)月后湃密,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诅挑,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年泛源,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拔妥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡达箍,死狀恐怖没龙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幻梯,我是刑警寧澤兜畸,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站碘梢,受9級(jí)特大地震影響咬摇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜煞躬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一肛鹏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恩沛,春花似錦在扰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至搅裙,卻和暖如春皱卓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背部逮。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工娜汁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兄朋。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓掐禁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親颅和。 傳聞我的和親對(duì)象是個(gè)殘疾皇子傅事,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評(píng)論 9 163
  • 比賽時(shí)間: 2016/12/01 上午 08:30 兩隊(duì)近況: 猛龍 目前戰(zhàn)績(jī)11勝6負(fù) 主客場(chǎng)戰(zhàn)績(jī) 主:5-3 ...
    20a56966a84e閱讀 298評(píng)論 0 0
  • 簡(jiǎn)介 Cyberduck是一個(gè)免費(fèi)開源的FTP客戶端工具,它支持快速查找峡扩、遠(yuǎn)程文本編輯等功能蹭越,提供Windows ...
    WeeverLu閱讀 2,848評(píng)論 0 1
  • 今天聽到這樣的一個(gè)小故事: 美國(guó)紐約一個(gè)三歲男孩被一個(gè)綁匪綁架了,談判專家在跟綁匪談判了三個(gè)小時(shí)以后依然無果后有额,狙...
    白小馬閱讀 322評(píng)論 0 0