git-it 教程,一些git知識點。/ 如何解決merge conflict/ 如何使用Github Pages./Git術語表


一個git使用教程 

https://:.com/jlord/git-it-electron#what-to-install 

一個在線Github的功能教學:https://lab.github.com/ 

 


 

看剛才改變的文件的區別。

git diff:

 

Add GitHub username to Git

添加你的用戶名到你的Git配置: (一次性的,所有倉庫都是這個名字)

git config --global user.username <USerNamE>

再核查一下:

git config --global user.username

 


 git remote add origin https://github.com/chentianwei411/hello-world.git

 git push -u origin master

 

把master分支推到遠程倉庫origin。

-u的意思是設置upstream ❓不明白。

 

提示:

設置URL給一個遠程倉庫, 改變一個遠程倉庫url

git remote set-url <remoteName> <URL> 

拉:

git pull <remoteName> <branchName>

推:

git push <remoteName> <branch> 

增加一個遠程倉庫:

git remote add <remoteName> <URL> 

本地和遠程斷開:

git remote remove <name>  #默認遠程倉庫名字是origin


 

Fork and Clones

 

fork到你的GitHub賬號,然后clone到你的電腦,你的電腦可以鏈接2個遠程倉庫,自己的和fork別人的倉庫。

可以從別人的倉庫pull變化的代碼。也可以push request,請求合並。

  1. fork
  2. git clone <自己的url>
  3. 鏈接到原始的倉庫。別人的那個倉庫。git remote add upstream <別人的倉庫URL>
origin https://github.com/chentianwei411/patchwork.git (fetch)
origin https://github.com/chentianwei411/patchwork.git (push)
upstream https://github.com/jlord/patchwork.git (fetch)
upstream https://github.com/jlord/patchwork.git (push)

 


 

Branch 

接着上面鏈接了遠程倉庫后,master變成了gh-pages❕

輸入:

patchwork ⮀ ⭠ gh-pages  git status

On branch gh-pages
Your branch is up-to-date with 'origin/gh-pages'.

Github將自動服務和靜態主頁網頁在branch中,叫做gh-pages。這個免費的服務是GitHub Pages。既然你forked創建了一個網頁,它的主要branch是gh-pages,代替了master。

 

改一個分支的name:

git branch -m <newBranchName> 

上傳一個變動:

git push origin add-chentianwei411 

 


 

創建一個pull request

你做了一些改動,push到fork的app創建人,並在它的Github上創建一個pull request。對方會選擇是否pull. 當被pull后,在本地可以合並,並刪除舊分支,還可以刪除遠程的舊分支。

git merge <branchName>

git branch -d <dd>

git push <remoteName> --delete <branchName> 

 

Pull form Upstream 

 最后,因為original 變化了。pull從original upstream

git pull upstream gh-pages 

 

在http://jlord.us/patchwork/ 可以看到我的名字chentianwei411

 


 

 https://help.github.com/articles/github-glossary/#repository

GitHub術語表Glossary

 

Blame:

描述一個文件中國年每一行最后的一次變更,包括修改,作者,時間。用於跟蹤記錄一個功能何時增加的,或者哪次提交導致了一個bug。

 

Diff

在兩個commit中的不同,變化。一般用於描述最后移除提交后,增加或移除的代碼。

 

Fetch

從最新的遠程倉庫下載變化但沒有merging them in。

 

Issue

是和這個倉庫相關的被建議的改進,任務,或者問題。Issue 可以被任何人創建(僅公共倉庫), 可以被倉庫的合作者管理。每個Issue都包括它自己的討論論壇,可以被標記和分配給一個user。

 

Pull request

are proposed changes to a repository submitted by a user。

下拉請求是提議的變化。它由一個使用者提交到一個倉庫。被倉庫的合作者接受或者拒絕。和Issue一樣,Pull request有自己的論壇。

 

SSH key

在一個在線服務上識別你自己的方法,使用編碼的信息。

 

Upstream

當談論一個分支或一個fork, 在原始倉庫中的主分支常常被認為是upstream上游。因為這里(主分支)是其他變化進入的主要位置。 The branch/fork 你正工作的地方則稱為downstream下游。

 

user

一個個人的GitHub賬號。


  

Git Page

特別的格式要求:

  • _config.yml 是自動生成的關於theme的YAML格式文件
  • 你需要一個文件使用YY-MM-DD-title.md的格式
  • JeKyll使用標記語法。
  • 具體要求都在這里:https://jekyllrb.com/docs/posts/

 


 


 https://lab.github.com/courses/managing-merge-conflicts

 

學習merge conflicts的解決方法

可以在github.com user interface上解決,也可以在command line或其他本地的tools上解決。

 

How merge conflicts happen

版本控制讓你制造不斷增加的代碼或文件,保存到歷史記錄中。 Git操作就像一個線性賬單。

在GitHub Flow中,首先,基於base branch創建新的分支。然后,你會增加多個提交commit,這些提交只存在於你新建的當前分支中。最后, 你打開一個pull request提議,讓你增加的commit合並到base branch中去,合並這個分支並刪除這個分支。

版本沖突就發生在當base branch 被某人改變了,而你使用的是沒變之前的base branch。這通常發生在你合並分支之前,已經有他人把他們的分支merge到了base branch.

 


 

 

解決一個簡單的沖突:

 

2個user在一個repository中工作,他們都創建了分支,都在改同一個文件后,打開了pull requests。一個人的請求被merge到master分支,這不會發生問題,但另一個人的pull request則會被拒絕,顯示conflict.

  1. 點擊“Resolve conflicts”按鈕,位於頁面底部的“This branch has conflicts that must be resolved”框。
  2. 進入新頁面,看到紅色高亮的部分: <<<<<< update-config和>>>>>>>>master
  3. 刪除主分支上的不同代碼,位於========下面,>>>>>>master上面的代碼。
  4. 然后,移除merge conflict markers。
    <<<<<<< update-config
    =======
    >>>>>>> master
  5.  點擊右上角的“Mark as resolved”,會出現 ✅Resolved all conflicts
  6.  並原位置出現Commit merge 按鈕,點擊它。回到Conversation討論版。

⚠️,有時,解決一個合並沖突的最好辦法是增加兩個分支之外的內容代碼,甚至聯合所有來自不同分支的變化代碼。因此Git需要人為的檢查代碼並作出適當的調整。

 

提交合並后發生了什么?

在一個新的merge commit記錄中儲存這個沖突的解決辦法。這樣你和你的團隊可以繼續工作。

 

另類的解決沖突的辦法:

為了解決一個沖突, GitHub可以使用一個叫做reverse merge的辦法。即:把master合並到update-config分支上。而不是把沖突分支合並到master上。

這種方法可以讓你在分支上測試這個代碼,保證✅后,再合並到master。尤其是在master已經處於產品階段,必須讓它無bug的情況。

 


 

Resolve conflicts in the Advanced Conflicts pull request

  • 總共2個文件,三個沖突。
  • 其中,一個文件中有2處沖突。
  • 合並沖突標記殘余,例如<<<<<。如果你的colleagues在本地解決了合並沖突,但忘記移除標記。

方法和上一節一樣。


 

More complicated merge conflicts:

需要在command line上解決。你可能遇到:

  • 修改一個已經刪除的文件,在另一個分支上。
  • 兩個分支上,明顯的文件改變,以至於Git對待它們為不同的文件。
  • GUI resolution tools 圖形界面工具。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM