一個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.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,請求合併。
Branch
接着上面連接了遠程倉庫後,master變成了gh-pages❕
patchwork ⮀ ⭠ gh-pages git status
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
特別的格式要求:
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.
<<<<<<< update-config ======= >>>>>>> master
⚠️,有時,解決一個合併衝突的最好辦法是增長兩個分支以外的內容代碼,甚至聯合全部來自不一樣分支的變化代碼。所以Git須要人爲的檢查代碼並做出適當的調整。
提交合並後發生了什麼?
在一個新的merge commit記錄中儲存這個衝突的解決辦法。這樣你和你的團隊能夠繼續工做。
另類的解決衝突的辦法:
爲了解決一個衝突, GitHub能夠使用一個叫作reverse merge的辦法。即:把master合併到update-config分支上。而不是把衝突分支合併到master上。
這種方法可讓你在分支上測試這個代碼,保證✅後,再合併到master。尤爲是在master已經處於產品階段,必須讓它無bug的狀況。
Resolve conflicts in the Advanced Conflicts pull request
方法和上一節同樣。
More complicated merge conflicts:
須要在command line上解決。你可能遇到: