在Github和Git上fork之簡單指南
編譯自:http://www.dataschool.io/simple-guide-to-forks-in-github-and-git/ 作者: Kevin Markham
原創:LCTT https://linux.cn/article-4292-1.html 譯者: su-kaiyao
以我的經驗來看,剛接觸Git和GitHub時,最困擾的一件事情就是嘗試解決下面的問題:在Git和GitHub上,我能做什麼?
Git教程往往不會解決這個問題,因為它集中篇幅來教你Git命令和概念,並且不認為你會使用GitHub。GitHub幫助教程[1]一定程度上彌補了這一缺陷,但是它每篇文章的關注點都較為狹隘,而且沒有提供關於"Git vs GitHub"問題的概念性概述。
如果你是習慣於先理解概念,再著手程式碼的學習者,而且你也是Git和GitHub的初學者,我建議你先理解清楚什麼是fork。為什麼呢 ?
Fork是在GitHub起步最普遍的方式。
Fork只需要很少的Git命令,但是起得作用卻非常大。
Fork提供了對Git和GitHub最基礎的瞭解,有益於你之後的工作。
本篇指南使用兩張簡單的圖表,來教會你fork的兩種主要工作流程。我並不打算涉及任何程式碼,但是在結論中,我會把你需要使用的程式碼的連結給你。
fork並且更新一個倉庫
現在有這樣一種情形:有一個叫做Joe的程式猿寫了一個遊戲程式,而你可能要去改進它。並且Joe將他的程式碼放在了GitHub倉庫上。下面是你要做的事情:
Alt text
Alt text
fork並且更新GitHub倉庫的圖表演示
Fork他的倉庫:這是GitHub操作,這個操作會複製Joe的倉庫(包括檔案,提交歷史,issues,和其餘一些東西)。複製後的倉庫在你自己的GitHub帳號下。目前,你本地計算機對這個倉庫沒有任何操作。
Clone你的倉庫:這是Git操作。使用該操作讓你傳送"請給我發一份我倉庫的複製檔案"的命令給GitHub。現在這個倉庫就會儲存在你本地計算機上。
更新某些檔案:現在,你可以在任何程式或者環境下更新倉庫裡的檔案。
提交你的更改:這是Git操作。使用該操作讓你傳送"記錄我的更改"的命令至GitHub。此操作只在你的本地計算機上完成。
將你的更改push到你的GitHub倉庫:這是Git操作。使用該操作讓你傳送"這是我的修改"的資訊給GitHub。Push操作不會自動完成,所以直到你做了push操作,GitHub才知道你的提交。
給Joe傳送一個pull request:如果你認為Joe會接受你的修改,你就可以給他傳送一個pull request。這是GitHub操作,使用此操作可以幫助你和Joe交流你的修改,並且詢問Joe是否願意接受你的"pull request",當然,接不接受完全取決於他自己。
如果Joe接受了你的pull request,他將把那些修改拉到自己的倉庫。勝利!
同步一個fork
Joe和其餘貢獻者已經對這個專案做了一些修改,而你將在他們的修改的基礎上,還要再做一些修改。在你開始之前,你最好"同步你的fork",以確保在最新的複製版本里工作。下面是你要做的:
同步GitHub fork的圖表示意圖
同步GitHub fork的圖表示意圖
從Joe的倉庫中取出那些變化的檔案:這是Git操作,使用該命令讓你可以從Joe的倉庫獲取最新的檔案。
將這些修改合併到你自己的倉庫:這是Git操作,使用該命令使得那些修改更新到你的本地計算機(那些修改暫時存放在一個"分支"中)。記住:步驟1和2經常結合為一個命令使用,合併後的Git命令叫做"pull"。
將那些修改更新推送到你的GitHub倉庫(可選):記住,你本地計算機不會自動更新你的GitHub倉庫。所以,唯一更新GitHub倉庫的辦法就是將那些修改推送上去。你可以在步驟2完成後立即執行push,也可以等到你做了自己的一些修改,並已經本地提交後再執行推送操作。
比較一下fork和同步工作流程的區別:當你最初fork一個倉庫的時候,資訊的流向是從Joe的倉庫到你的倉庫,然後再到你本地計算機。但是最初的過程之後,資訊的流向是從Joe的倉庫到你的本地計算機,之後再到你的倉庫。
結論
我希望這是一篇關於GitHub和Git 的 fork[2]有用概述。現在,你已經理解了那些概念,你將會更容易地在實際中執行你的程式碼。GitHub關於fork和同步[3]的文章將會給你大部分你需要的程式碼。
如果你是Git的初學者,而且你很喜歡這種學習方式,那麼我極力推薦書籍Pro Git[4]的前兩個章節,網上是可以免費查閱的。
如果你喜歡視訊學習,我建立了一個11部分的視訊系列[5](總共36分鐘),來向初學者介紹Git和GitHub。
via: http://www.dataschool.io/simple-guide-to-forks-in-github-and-git/
作者:Kevin Markham [6] 譯者:su-kaiyao[7] 校對:wxy[8]
本文由 LCTT[9] 原創翻譯,Linux中國[10] 榮譽推出
相關文章
- Github和Git上fork指南Github
- Git/Github簡單入門指南Github
- git上傳github簡單操作步驟Github
- git 託管到github上的簡單方法Github
- github客戶端fork的簡單教程Github客戶端
- Github上的star和fork是什麼Github
- 通過git上傳專案到碼雲和GitHub最簡單的流程Github
- 雜記:Git與Github簡單使用Github
- git的簡單上傳Git
- 簡單好用的Git客戶端 Fork 最新免啟用版Git客戶端
- Git,Github和Gitlab簡介和基本使用GithubGitlab
- Github上fork了別人的專案之後如何同步程式碼Github
- 簡單好用的Git客戶端 Fork免啟用最新版Git客戶端
- git上傳至githubGithub
- Git在windows下上傳檔案至github流程WindowsGithub
- 通過git shell 在Github上傳本地專案Github
- Git:使用 GitHub 託管程式碼的簡單流程Github
- git和tormoisegit上傳本地檔案到githubORMGithub
- 【Git】fork遠端倉庫,fork倉庫同步和提交pull requestGit
- 7、Git之Github操作Github
- github同步fork倉庫Github
- Github上fork專案後保持與源專案更新Github
- GitHub 簡易入門指南Github
- Git和GitHub快速上手Github
- git+github上傳與管理Github
- git上傳專案到githubGithub
- Web 前置知識——Git 和 GitHub:① Git、GitHub初認識WebGithub
- git fork後如何更新Git
- Github 簡單使用Github
- Git Fork Pull Request(PR)和Merge Request(MR)Git
- 簡單對比git pull和git pull --rebase的使用Git
- IDEA中配置Git,在Github上clone專案到IDEAIdeaGithub
- github fork別人專案之後,更新和提交操作Github
- Git 和 GitHub:從入門到實踐2 Git 和 GitHub 基礎配置Github
- git簡單命令Git
- Git簡單原理Git
- git簡單使用Git
- Git與Github入門實踐(上)Github