所有的操作對(duì)應(yīng)一行代碼
準(zhǔn)備工作
- 將倉庫拷貝到本地
git clone git@github.com:username/filename.git
cd file
- 查看克隆下來的倉庫分支
- 新建work分支并切換到該目錄,work相當(dāng)于filename的鏡像倉庫
git branch -a
git checkout -b work filename
- 查看上述是否成功蚤吹,查看文件列表,并根據(jù)自己需要修改代碼
git branch -a
ls
- 查看操作記錄,不是commit
- 查看修改記錄
- 添加到“執(zhí)行隊(duì)列”
- 執(zhí)行,并添加說明
git status
git diff
git add somefile.txt
git commit -m "information"
- 創(chuàng)建本地work相對(duì)應(yīng)的遠(yuǎn)程分支
- 查看分支信息
git push origin work
git branch -a
發(fā)送請(qǐng)求
- 登陸網(wǎng)站假哎,查看提交瞬捕,修改內(nèi)容,確認(rèn)是否無誤
- 點(diǎn)擊Create Pull Request
- 填寫請(qǐng)求方采納的評(píng)論舵抹、發(fā)送肪虎,對(duì)方目標(biāo)倉庫會(huì)新建Pull Requests和Issue
- 也可以直接在網(wǎng)頁上,在目標(biāo)倉庫下惧蛹,點(diǎn)擊New pull requests扇救,附上小段代碼即可。ps:要多看大神的源代碼香嗓,參與到關(guān)鍵性的討論中去Q盖弧!
倉庫的維護(hù)
因?yàn)閏lone的遠(yuǎn)程倉庫和原fork的遠(yuǎn)程倉庫無關(guān)靠娱,需要將原倉庫視為遠(yuǎn)程倉庫
從別人那里fork的原始倉庫更新了沧烈,可以照著下邊1-4步執(zhí)行,即可更新自己的本地倉庫和遠(yuǎn)程倉庫
- 查看遠(yuǎn)程主機(jī)狀態(tài)
- 設(shè)置遠(yuǎn)程倉庫名為upstream
git remote -v
git remote add upstream git@github.com:username/filename.git
- 獲取最新數(shù)據(jù)
- 將遠(yuǎn)程倉庫的master分支數(shù)據(jù)和當(dāng)前倉庫合并
git fetch upstream
git merge upstream/master
注意
自己的遠(yuǎn)程倉庫如果有舊版本的話像云,可以先clone下來锌雀,再進(jìn)入到文件目錄
git clone git@github.com:yourname/yourfile.git
cd yourfile
將本地合并后的倉庫push到自己的遠(yuǎn)程倉庫,即可三地同步
本地反映Pull Requests
- 更新接收方的本地倉庫
git clone ......
cd ....
- 獲取發(fā)送方的遠(yuǎn)程倉庫
git remote add PR發(fā)送者 git@github.com:PR發(fā)送者/file.git
git fetch PR發(fā)送者
- 創(chuàng)建用于檢查的分支(避免兩個(gè)倉庫沖突)
git checkout -b afile
- 遠(yuǎn)程倉庫分支work和本地新建的afile分支倉庫合并
git merge PR發(fā)送者/work
- 刪除分支迅诬,在外部文件查看是否已更新
git branch -D afile
- 切換到自己的倉庫分支
- 合并到自己的倉庫
git checkout bfile
git merge PR發(fā)送者/work
- 推送修改的內(nèi)容腋逆,更新自己的遠(yuǎn)程倉庫
git diff origin/bfile
git push
ps:github倉庫的pull Request會(huì)自動(dòng)從open變?yōu)閏lose
小結(jié)
- 如果只有幾行代碼的修改,直接網(wǎng)頁上合并侈贷,再更新到本地
- 涉及多個(gè)文件時(shí)惩歉,再用CLI走上邊的流程
關(guān)于Github的學(xué)習(xí),致謝:
- 《GitHub入門與實(shí)踐》
- 廖雪峰學(xué)習(xí)網(wǎng)站
編程自學(xué)者俏蛮,求指導(dǎo): https://github.com/BigBugBoy