-
git 安裝
windows 是鄙視鏈末端的開(kāi)發(fā)平臺(tái),但也得用啊! 下載地址:https://git-for-windows.github.io/
-
git 配置
$ git config --global user.name "runoob" $ git config --global user.email test@runoob.com $ git config --list SSH 密鑰 $ ssh-keygen -t rsa -C "your_email@youremail.com" $ ssh -T git@github.com
git 工作流程
git-process.png
- git 文件區(qū)“三棵樹(shù)”
git-zone.jpg
+ git add : 暫存區(qū)的目錄樹(shù)被更新,同時(shí)工作區(qū)文件內(nèi)容被寫(xiě)入到對(duì)象庫(kù)中的一個(gè)新的對(duì)象中,而該對(duì)象的ID被記錄在暫存區(qū)的文件索引中。
+ git commit : 暫存區(qū)的目錄樹(shù)寫(xiě)到版本庫(kù)(對(duì)象庫(kù))中,master 分支會(huì)做相應(yīng)的更新。即 master 指向的目錄樹(shù)就是提交時(shí)暫存區(qū)的目錄樹(shù)。
+ git reset HEAD : 暫存區(qū)的目錄樹(shù)會(huì)被重寫(xiě),被 master 分支指向的目錄樹(shù)所替換,但是工作區(qū)不受影響。
+ git rm --cached <file> : 會(huì)直接從暫存區(qū)刪除文件,工作區(qū)則不做出改變。
+ git checkout 或者 git checkout -- <file> : 暫存區(qū)全部或指定的文件替換工作區(qū)的文件。這個(gè)操作很危險(xiǎn),會(huì)清除工作區(qū)中未添加到暫存區(qū)的改動(dòng)。
+ git checkout HEAD 或者 git checkout HEAD <file> : HEAD 指向的 master 分支中的全部或者部分文件替換暫存區(qū)和以及工作區(qū)中的文件。這個(gè)命令也是極具危險(xiǎn)性的,因?yàn)椴坏珪?huì)清除工作區(qū)中未提交的改動(dòng),也會(huì)清除暫存區(qū)中未提交的改動(dòng)。
-
git 倉(cāng)庫(kù)
+ git init : 初始化當(dāng)前目錄,即將本地項(xiàng)目加入git。進(jìn)錯(cuò)目錄的話,直接刪除.git 文件夾。然后將相關(guān)文件加入版本控制: $ git add *.c $ git add README $ git commit -m '初始化項(xiàng)目版本' ———————————————————————————————————————————— + git clone :克隆服務(wù)器項(xiàng)目加入git。可指定地址,可改名 $ git clone <repo> $ git clone git://github.com/schacon/grit.git mygrit ———————————————————————————————————————————— + 忽略無(wú)需加入git管理的文件,如自動(dòng)生成的日志文件、編譯過(guò)程中的臨時(shí)文件等。養(yǎng)成習(xí)慣,避免提交無(wú)用的文件 參考內(nèi)容參考 : https://github.com/github/gitignore
-
git 基本命令
+ git add : 這是個(gè)多功能命令:可以用它開(kāi)始跟蹤新文件,或者把已跟蹤的文件放到暫存區(qū),還能用于合并時(shí)把有沖突的文件標(biāo)記為已解決狀態(tài)等。 將這個(gè)命令理解為“添加內(nèi)容到下一次提交中”而不是“將一個(gè)文件添加到項(xiàng)目中”要更加合適。 —————————————————————————————————————————— + git status -s : 查看項(xiàng)目當(dāng)前狀態(tài)。帶-s是簡(jiǎn)要輸出,不帶-s是詳細(xì)輸出。 ?? ——新添加的未跟蹤文件; A ——新添加到暫存區(qū)中的文件; M ——修改過(guò)的文件。出現(xiàn)在左邊的 M,表示該文件被修改了并放入了暫存區(qū); M ——修改過(guò)的文件。出現(xiàn)在右邊的 M,表示該文件被修改了但是還沒(méi)放入暫存區(qū)。 —————————————————————————————————————————— + git diff :查看變動(dòng)內(nèi)容。 尚未緩存的改動(dòng):git diff 查看已緩存的改動(dòng): git diff --cached 查看已緩存的與未緩存的所有改動(dòng):git diff HEAD 顯示摘要而非整個(gè) diff:git diff --stat 備注:查看代碼差異的圖形化工具,例:diffmerge —————————————————————————————————————————— + git commit -m '注釋內(nèi)容' : 將緩存區(qū)內(nèi)容加到倉(cāng)庫(kù). + git commit -m -a '注釋內(nèi)容' : 跳過(guò)git add加緩存環(huán)節(jié),直接提交跟蹤過(guò)的文件。 —————————————————————————————————————————— + git reset HEAD -- 文件:用于取消已緩存的內(nèi)容,取消之前 git add 添加,但不希望包含在下一提交快照中的緩存 —————————————————————————————————————————— + git rm file :將條目從緩存區(qū)及硬盤中移除,比git reset HEAD 程度重 + git rm --cached file : 將條目從緩存區(qū)移除,但保留硬盤文件。相當(dāng)于從未add過(guò),適于忘記添加 .gitignore 文件時(shí)用 —————————————————————————————————————————— + git mv file_old file_new : 重命名文件。一條命令做三件事:從緩存區(qū)移除,重命名,再加入緩存區(qū) —————————————————————————————————————————— + git log : 查看提交歷史記錄。可帶不同參數(shù): --oneline : 單行簡(jiǎn)潔表示 --graph : 分支、合并等等 --before={3.weeks.ago} :指定時(shí)間方式1 --after={2010-04-18} :指定時(shí)間方式2 -(n) :僅顯示最近的 n 條提交 更多詳見(jiàn):https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2 ———————————————————————————————————————————— + git tag -a v1.4 -m '注釋' : 加附注標(biāo)簽,帶注釋。不帶-a-m,則為輕量標(biāo)簽 + git show v1.4 : 查看標(biāo)簽 ————————————————————————————————————————————
-
遠(yuǎn)程倉(cāng)庫(kù) github
+ git remote : 查看已經(jīng)配置的遠(yuǎn)程倉(cāng)庫(kù)服務(wù)器。倉(cāng)庫(kù)服務(wù)器的默認(rèn)名字為origin。加上 -v 參數(shù),可以看到每個(gè)別名的實(shí)際鏈接地址 + git remote add [shortname] [url] : 添加一個(gè)新的遠(yuǎn)程 Git 倉(cāng)庫(kù),同時(shí)指定一個(gè)簡(jiǎn)寫(xiě) —————————————————————————————————————————— + git fetch : 從遠(yuǎn)程倉(cāng)庫(kù)下載新分支與數(shù)據(jù),只要在于查看。之后需git merge該分支到你所在分支 + git pull : 即git fetch 再加git merge,包含合并過(guò)程 —————————————————————————————————————————— + git push [remote-name] [branch-name] : 推送新分支與數(shù)據(jù)到某個(gè)遠(yuǎn)端倉(cāng)庫(kù) —————————————————————————————————————————— + git remote rm [別名] : 刪除某個(gè)遠(yuǎn)程倉(cāng)庫(kù) + git remote rename oldname newname :重命名遠(yuǎn)程倉(cāng)庫(kù)
- 附錄教程