如何把别人项目代码修改后 提交到github
2017-06-27 11:21
501 查看
git相关知识
如果你从 github 上clone了别人的代码,本地做了一些修改后,直接提交可能会遇到一些问题,首先需要你输入用户名,接着输入密码,最后返回错误提示信息.
试想一下,如果你可以把 clone 下来的代码随意修改完后,还能随意提交到github服务器,那整个开源生态可能要彻底乱为一团.所以不让你提交就对了.
那如何把 clone 后修改的代码提交到 github 呢?
github上 不是有个fork么, 好,那么给别人的项目提交代码的方式就有了,先fork下别人的代码,于是你的github上就出现了同名的项目,这个项目就属于你自己了,你把这个自己的项目git clone到本地,修修改改,然后push到你自己的项目里,
那么你如何把你对自己项目的改动,给发到之前fork的那个原项目呢,
在github上你的项目页面有个按钮,叫Pull request,对 你点它就会把你的修改发到对方的项目里,人还会收到邮件呢,由原项目主人决定是否接受你的修改
在你fork他的项目之后,如果他又更新了代码,你自己fork的项目怎么做到和原项目同步呢?
解决方法一github居然可以给项目添加合作者,也就是说,你想参与我的项目,你跟我说一声,我就把你添加到我的项目里作为合作者,这个选项在项目的设置里面有,只要我添加你了,你就可以git clone我的代码然后修修改改,然后直接push上来就行了,就不用fork那么麻烦了,如果你要更新服务器代码,只要git pull就行了,合作者这东西多方便.
解决方法二
你先git clone我的代码到本地,然后修修改改,然后你不是不能push到我的项目里么,你可以先在github页面上fork我的项目,有了你自己的项目地址(url)之后呢,
你在本地操作git remote add [sort name] [your url],意思就是添加第二个远程仓库地址,这个仓库的“昵称”就是你刚指定的[sort name],
你之后push文件呢 就通过指定这个[sort name]来push到这个你自己的仓库里
等你觉得想要把你改的发给原项目同步,就在你的项目上点Pull request按钮.说下另一种情况,
如果是,原项目发生了改动,你要想同步到本地,就直接从git fetch origin 从原项目的地址同步代码,然后再merge就好了
当然,你可以通过新建分支的方式往自己的项目上push,这样同步的时候直接fetch就行了
比如我下载的 oh-my-zsh 项目下面的皮肤模板做了一点点修改,当新版本的需要更新时,我是无法获取到的,因为有一个本地修改没有提交.但是我直接提交又是提交不成功的.所以我先 fork 到自己名下,然后在 oh-my-zsh 所在项目目录下执行 git remote add 别名 我fork后的项目地址 方法来添加一个仓库名
➜ /Users/zhangzhi/.oh-my-zsh git:(master) >git remote add yijiebuyi git@github.com:zzhi191/oh-my-zsh.git ➜ /Users/zhangzhi/.oh-my-zsh git:(master) >gst On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working directory clean ➜ /Users/zhangzhi/.oh-my-zsh git:(master) >gp yijiebuyi Counting objects: 11, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (7/7), 1.26 KiB | 0 bytes/s, done. Total 7 (delta 4), reused 0 (delta 0) To git@github.com:zzhi191/oh-my-zsh.git 192de6b..48cd332 master -> master
我提交的别名叫 yijiebuyi那么我修改的东西直接也提交到 yijiebuyi 这个别名下即可.
最后通过 git fetch origin 来获取最新代码
➜ /Users/zhangzhi/.oh-my-zsh git:(master) >git fetch origin remote: Counting objects: 14066, done. remote: Compressing objects: 100% (5285/5285), done. remote: Total 14066 (delta 8413), reused 13610 (delta 7972), pack-reused 0 Receiving objects: 100% (14066/14066), 2.31 MiB | 213.00 KiB/s, done. Resolving deltas: 100% (8413/8413), completed with 257 local objects. From https://github.com/robbyrussell/oh-my-zsh 192de6b..d3b9520 master -> origin/master
出自:如何把别人项目代码修改后 提交到github
相关文章推荐
- GitHub 手把手教你如何把本地项目或代码提交到Github托管
- Github上fork了别人的项目之后如何同步代码
- GitHub 手把手教你如何把本地项目或代码提交到Github托管
- 如何正确地给 github 的开源项目提交 pull request具体一些,比如 fork 之后创建几个分支,修改后如何和原项目同步
- 如何在git上clone别人的项目、提交代码以及更新最新代码
- Github上如何给别人贡献代码(转)
- 如何在windows上把你的项目提交到github
- 如何在window上把你的项目提交到github
- 花20分钟写的-大白话讲解如何给github上项目贡献代码
- 如何使用Git上传项目代码到github
- 花20分钟写的-大白话讲解如何给github上项目贡献代码
- 花20分钟写的-大白话讲解如何给github上项目贡献代码
- 大白话讲解如何给github上项目贡献代码
- github 修改fork的代码之后如何提交代码并pull request
- 如何通过github为某个项目贡献代码?
- 如何在window上把项目提交到github上
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- [Github] 把自己做完的代码提交(commit以及push)到线上公共项目中
- github上fork别人代码,如何将自己代码更新到最新版本
- 如何使用Git上传项目代码到github