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

一個git使用教程 git

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

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

 


 

看剛纔改變的文件的區別。electron

git diff:工具

 

Add GitHub username to Gitpost

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

git config --global user.username <USerNamE>

再覈查一下:測試

git config --global user.usernamefetch

 


 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 圖形界面工具。
相關文章
相關標籤/搜索