- Author: duqi@kongge.com
- Date: 2017.02.13
- 總結(jié)自廖雪峰-Git教程
-
將一個(gè)本地維護(hù)的項(xiàng)目陷谱,轉(zhuǎn)換為一個(gè) Git 項(xiàng)目,并托管到 GitHub:
- 打開(kāi)命令行終端偎肃,進(jìn)入項(xiàng)目所在的本地目錄,將目錄初始化為一個(gè) Git 項(xiàng)目,
git init
; - 將所有文件放進(jìn)新的本地 git 倉(cāng)庫(kù),
git add .
; - 將添加的文件提交到倉(cāng)庫(kù), 'git commit -m "test"';
- github上創(chuàng)建一個(gè)新的倉(cāng)庫(kù),復(fù)制倉(cāng)庫(kù)的git吨述,
https://github.com/superRaytin/alipay-app-ui.git
- 把本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)連接起來(lái),
git remote add origin https://github.com/superRaytin/alipay-app-ui.git钞脂;
- 提交代碼到 GitHub 倉(cāng)庫(kù)揣云,
git push -u origin master
- 打開(kāi)命令行終端偎肃,進(jìn)入項(xiàng)目所在的本地目錄,將目錄初始化為一個(gè) Git 項(xiàng)目,
-
git diff HEAD -- readme.txt
:- 對(duì)比版本庫(kù)和本地文件的差異
-
git checkout -- readme.txt
:- 丟棄工作區(qū)的修改
- 把未提交的文件,恢復(fù)到最近一次樣子冰啃。注意邓夕,一定要有
--
; - 這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。
-
git reset HEAD readme.txt
:- 可以把暫存區(qū)的修改撤銷(xiāo)掉(unstage)亿笤,重新放回工作區(qū):
-
git rm test.txt
:- 先通過(guò)
rm test.txt
, 如果確實(shí)要從版本庫(kù)中刪除該文件翎迁,那就用命令git rm刪掉栋猖,并且git commit; - 如果覺(jué)得刪錯(cuò)了净薛,可以用
git checkout -- test.txt
恢復(fù)
- 先通過(guò)
-
git remote add origin git@github.com:michaelliao/learngit.git
:- 本地創(chuàng)建了git倉(cāng)庫(kù),遠(yuǎn)程也創(chuàng)建了
learngit
倉(cāng)庫(kù)蒲拉; - 通過(guò)
git remote
建立倉(cāng)庫(kù)的關(guān)聯(lián)肃拜; - 然后通過(guò)
git push -u origin master
,把本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程庫(kù)上雌团; - 第一次推送master分支時(shí)燃领,加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支锦援,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái)猛蔽,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令;
-
git push origin master
灵寺,把本地master分支的最新修改推送至GitHub曼库,現(xiàn)在,你就擁有了真正的分布式版本庫(kù)略板!
- 本地創(chuàng)建了git倉(cāng)庫(kù),遠(yuǎn)程也創(chuàng)建了
-
git clone git@github.com:michaelliao/gitskills.git
:- 如果先有遠(yuǎn)程倉(cāng)庫(kù)毁枯,可以克隆到本地
-
git checkout -b dev
:- 創(chuàng)建dev分枝,
-b
參數(shù)表示創(chuàng)建并切換叮称,相當(dāng)于以下兩條命令: git branch dev
git checkout dev
- 創(chuàng)建dev分枝,
-
git merge dev
:git merge命令用于合并指定分支到當(dāng)前分支种玛。比如藐鹤,目前如果在master分枝上,
git merge dev
赂韵,即把dev
分枝合并到master
分枝上娱节;合并完成后,就可以放心地刪除dev分支了祭示,
git branch -d dev
;刪除后括堤,查看branch,就只剩下master分支了:
git branch
<u>因?yàn)閯?chuàng)建绍移、合并和刪除分支非城那裕快,所以Git鼓勵(lì)你使用分支完成某個(gè)任務(wù)蹂窖,合并后再刪掉分支轧抗,這和直接在master分支上工作效果是一樣的,但過(guò)程更安全瞬测。</u>:
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當(dāng)前分支:git merge <name>
刪除分支:git branch -d <name>
合并過(guò)程中横媚,沖突的解決!
-
git update-index --assume-unchanged logs/*.log
:- 已經(jīng)維護(hù)起來(lái)的文件月趟,即使加上了gitignore灯蝴,也無(wú)濟(jì)于事。先刪除跟蹤文件孝宗,這樣每次提交就不會(huì)出現(xiàn)logs下面的文件了