所有的操作对应一行代码
准备工作
- 将仓库拷贝到本地
git clone git@github.com:username/filename.git
cd file
- 查看克隆下来的仓库分支
- 新建work分支并切换到该目录,work相当于filename的镜像仓库
git branch -a
git checkout -b work filename
- 查看上述是否成功,查看文件列表,并根据自己需要修改代码
git branch -a
ls
- 查看操作记录,不是commit
- 查看修改记录
- 添加到“执行队列”
- 执行,并添加说明
git status
git diff
git add somefile.txt
git commit -m "information"
- 创建本地work相对应的远程分支
- 查看分支信息
git push origin work
git branch -a
发送请求
- 登陆网站,查看提交,修改内容,确认是否无误
- 点击Create Pull Request
- 填写请求方采纳的评论、发送,对方目标仓库会新建Pull Requests和Issue
- 也可以直接在网页上,在目标仓库下,点击New pull requests,附上小段代码即可。ps:要多看大神的源代码,参与到关键性的讨论中去!!
仓库的维护
因为clone的远程仓库和原fork的远程仓库无关,需要将原仓库视为远程仓库
从别人那里fork的原始仓库更新了,可以照着下边1-4步执行,即可更新自己的本地仓库和远程仓库
- 查看远程主机状态
- 设置远程仓库名为upstream
git remote -v
git remote add upstream git@github.com:username/filename.git
- 获取最新数据
- 将远程仓库的master分支数据和当前仓库合并
git fetch upstream
git merge upstream/master
注意
自己的远程仓库如果有旧版本的话,可以先clone下来,再进入到文件目录
git clone git@github.com:yourname/yourfile.git
cd yourfile
将本地合并后的仓库push到自己的远程仓库,即可三地同步
本地反映Pull Requests
- 更新接收方的本地仓库
git clone ......
cd ....
- 获取发送方的远程仓库
git remote add PR发送者 git@github.com:PR发送者/file.git
git fetch PR发送者
- 创建用于检查的分支(避免两个仓库冲突)
git checkout -b afile
- 远程仓库分支work和本地新建的afile分支仓库合并
git merge PR发送者/work
- 删除分支,在外部文件查看是否已更新
git branch -D afile
- 切换到自己的仓库分支
- 合并到自己的仓库
git checkout bfile
git merge PR发送者/work
- 推送修改的内容,更新自己的远程仓库
git diff origin/bfile
git push
ps:github仓库的pull Request会自动从open变为close
小结
- 如果只有几行代码的修改,直接网页上合并,再更新到本地
- 涉及多个文件时,再用CLI走上边的流程
关于Github的学习,致谢:
- 《GitHub入门与实践》
- 廖雪峰学习网站
编程自学者,求指导: https://github.com/BigBugBoy