Udacity前端開發(fā)工程師(入門)25 - 創(chuàng)建和修改代碼庫

25.0 本課內(nèi)容

  • 如何將 Git 用于自己計算機(jī)上的單獨項目
  • 如何新建倉庫(repository)并進(jìn)行提交(commit
  • Git 進(jìn)行合并和分支以及使用上述工具追蹤項目的更改

25.1 練習(xí)初始化倉庫

初始化./創(chuàng)建新的 Git 代碼庫:git init

當(dāng)初始化 Git 代碼庫的時候, Git并不會自動進(jìn)行 commit

當(dāng) Git 要進(jìn)行提交的時候,并不需要將整個 Git 倉庫進(jìn)行提交,而可以選擇性的將文件添加到存儲區(qū)域,該命令為:git add

如果你意外地將某個文件添加到暫存區(qū)中,可以使用 git reset 刪除它。例如,如果你意外地添加了 lesson_2_reflections.txt,但不想提交它,請運(yùn)行 git reset lesson_2_reflections.txt,此命令會從暫存區(qū)中刪除該文件,但它仍在你的工作目錄中。

自我們上次再次查看概念圖以來,我們引入了一些新概念。

git init (git 初始化)
git add (git 添加)
git status (git 狀態(tài))
staging area (暫存區(qū))
working directory (工作目錄)
[//]: #(

image.png
)
[//]: # (This may be the most platform independent comment)

25.2 寫好提交信息

在將倉庫進(jìn)行提交的時候,需要編寫提交信息,以說明所做的更改。可以通過命令行指定提交信息,git commit -m "Commit message"
設(shè)置編輯器仍然是一種好的做法,因為這可更輕松地編寫較長的提交信息,以全面說明所做的更改。

提交信息的風(fēng)格
雖然提交信息的風(fēng)格因人而異,但此風(fēng)格指南介紹了在編寫提交信息時的一些常見最佳做法。

25.3 再次學(xué)習(xí) git diff

git diff 有了新功能,如下:

git diff:比較 working directory 以及 staging area
git diff --staged:比較 staging area 以及 repository 中最新的 commit
git diff commit1 commit2:比較 repository 中的 commit1commit2

25.4 分支 Branch

branch 實際就是 Git 為了操作方便而對 commit 添加的標(biāo)簽(label)。使用 git branch 創(chuàng)建和查看分支。

直接 git branch 可以顯示當(dāng)前的分支
而給 git branch 后賦一個參數(shù)后,則會新建一個與參數(shù)同名的分支: git branch easy-mode

  • 使用 git branch branch_name 創(chuàng)建以 branch_name 命名的 branch。
  • 使用 git checkout branch_name 檢出以 branch_name 命名的 branch

上述兩條命令可以簡單表示成:git checkout -b branch_name

  • 使用 git commit 以提交添加到存儲區(qū)域的內(nèi)容。
  • 使用 git log --graph --oneline branch1_name branch2_name 以查看 branch1_namebranch2_name 分支的提交記錄。

25.5 練習(xí)合并簡單文件(將多個分支中的更改合并到單一版本)

Git 創(chuàng)建單一版本將多個分支的所有更改包含在內(nèi)的合并策略。

Git 根據(jù)當(dāng)前兩個 branch 最新的 commit,以及它們 fork 之前的 commit 的記錄(即形成分支的時候所具有的原始文件)來創(chuàng)建者兩個分支的合并提交。當(dāng)前兩個分支的最新提交均為該合并提交(merged commit)的父提交。

image.png

使用 git merge master new-branch 合并 masternew-branch 并且將合并后的提交作為 master 的新頂點。
使用 git show commit_id 通過該命令查看 commit_id 與其父級 commit 當(dāng)中的更改,而無需了解父級 commit 到底是哪個
使用 git branch dash -d branch-name 將標(biāo)簽 branch-name 刪除,但并不會刪除分支中的提交。-d 指代 delete

25.6 練習(xí)合并沖突 & 檢測沖突

合并沖突(merge conflict):意味著 masterbranch_name 更改了某文件的同一部分。Git 自身無法判斷哪些更改需要保留,因此會提示作者進(jìn)行抉擇。

25.7 概念圖:分支和合并

分支與合并都需進(jìn)行提交,但提交與分支/合并之間到底有什么關(guān)系?

分支實際上就是提交的標(biāo)簽(label

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git是目前最流行的版本管理系統(tǒng),也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,970評論 1 17
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,866評論 1 26
  • 轉(zhuǎn)眼間,已經(jīng)是成長活動的第六周了,真心覺得日子過得飛快,一路的點滴滴的積累,發(fā)給我一點一滴的改變。這一周,...
    巧青閱讀 169評論 0 2
  • 這些樹是剛種下,希望來年能夠發(fā)芽!
    我是王曉陽閱讀 109評論 0 0
  • 我知道終有一天,當(dāng)時光輪轉(zhuǎn)、歲月積淀,我會把那個完整的真實的我說給你聽。我會走上寫作的道路,是純粹意義上的寫作,不...
    千暢閱讀 475評論 0 0

友情鏈接更多精彩內(nèi)容