Github和Git上fork指南

现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它。并且Joe将他的代码放在了GitHub仓库上。下面是你要做的事情:

fork并且更新GitHub仓库的图表演示

  1. Fork他的仓库:这是GitHub操作,这个操作会复制Joe的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。
  2. Clone你的仓库:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
  3. 更新某些文件:现在,你可以在任何程序或者环境下更新仓库里的文件。
  4. 提交你的更改:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
  5. 将你的更改push到你的GitHub仓库:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。
  6. 给Joe发送一个pull request:如果你认为Joe会接受你的修改,你就可以给他发送一个pull request。这是GitHub操作,使用此操作可以帮助你和Joe交流你的修改,并且询问Joe是否愿意接受你的"pull request",当然,接不接受完全取决于他自己。

如果Joe接受了你的pull request,他将把那些修改拉到自己的仓库。胜利!

同步一个fork

Joe和其余贡献者已经对这个项目做了一些修改,而你将在他们的修改的基础上,还要再做一些修改。在你开始之前,你最好"同步你的fork",以确保在最新的复制版本里工作。下面是你要做的:

同步GitHub fork的图表示意图

  1. 从Joe的仓库中取出那些变化的文件:这是Git操作,使用该命令让你可以从Joe的仓库获取最新的文件。
  2. 将这些修改合并到你自己的仓库:这是Git操作,使用该命令使得那些修改更新到你的本地计算机(那些修改暂时存放在一个"分支"中)。记住:步骤1和2经常结合为一个命令使用,合并后的Git命令叫做"pull"。
  3. 将那些修改更新推送到你的GitHub仓库(可选):记住,你本地计算机不会自动更新你的GitHub仓库。所以,唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push,也可以等到你做了自己的一些修改,并已经本地提交后再执行推送操作。

比较一下fork和同步工作流程的区别:当你最初fork一个仓库的时候,信息的流向是从Joe的仓库到你的仓库,然后再到你本地计算机。但是最初的过程之后,信息的流向是从Joe的仓库到你的本地计算机,之后再到你的仓库。

更新GitHub上自己 Fork 的代码与原作者的项目进度一致

在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不会受影响,避免了原作者项目被污染。但经过一段时间, 有可能作者原来的代码变化很大, 你想接着在他最新的代码上修改, 这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。 
1、先克隆项目到本地: 
git clone https://github.com/iakuf/mojo 
cd mojo 
2、添加原作者项目的 remote 地址, 然后将代码 fetch 过来 
git remote add sri https://github.com/kraih/mojo 
git fetch sri 
‘sri’相当于一个别名 
查看本地项目目录: git remote -v 
3、合并 
git checkout master 
git merge sri/master 
如果有冲突的话,需要丢掉本地分支: 
git reset –hard sri/master 
4、这时你的当前本地的项目变成和原作者的主项目一样了,可以把它提交到你的GitHub库 
git commit -am ‘更新到原作者的主分支’ 
git push origin 
git push -u origin master -f –强制提交

原文地址:https://www.cnblogs.com/kex1n/p/8289139.html

时间: 2024-07-29 11:10:30

Github和Git上fork指南的相关文章

GIT上fork的项目获取最新源代码

github上有一个非常强大的功能,pull request,当fork一个项目后可以拉去原代码中最新的改动,让自己的项目和作者的项目保持一致,也可以提交自己的代码给作者,让自己为开源项目贡献力量. 不过我并没有在gitlab上发现这样的功能,只有类似于提交自己的代码给原代码的Merge request的功能. 但是,这样的需求还是可以通过强大的命令实现的 1 给自己fork的项目增加一个远程的项目源. git remote add #myremote# #https://git.oschina

GIT:fork和clone的区别,fetch与pull的区别

参考资料: [1].Git学习笔记:fork和clone的区别,fetch与pull的区别 [2].在Github和Git上fork之简单指南

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Git入门 如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),可知我们此时应该有两个仓库,就是两个放代码的地方,一个是本地,一个是远程的(如Github).企业或者团队可以通过Git来对项目进行管理,每个程序员只需将自己的本地仓库写好的代码上传到远程仓库,另一个程序员就可以下载到本地仓库了.今天我们就从Git终端软件的安装开始,再这之前我也简单介绍一下Github. Git上传代码 一.准备工作 1.注册一个g

如何在github上fork一个项目来贡献代码以及同步原作者的修改

如何在github上fork一个项目来贡献代码以及同步原作者的修改 作为一个IT人,通过github进行学习是最快的成长手段.我们可以浏览别人的优秀代码.但只看不动手还是成长得很慢,因此为别人贡献代码才是明智之举.比如我们看下片看,许多大片都是由字幕组免费翻译压制的.为什么他们要这样做呢?因为他们都是聪明的大学生,为了提高听力水平,提高笔译水平才这样干的!中国人都是非常实务的!因此贡献代码,参与开源项目都是有益无害的!好了,让我们开始吧! 如何贡献自己的力量 首先你总得有自己的github帐号吧

Github上fork项目后与原项目保持同步

**步骤** 假设来源为 `https://github.com/_original/_project.git`fork 项目为  `https://github.com/_your/_project.git` 1. 检出自己在github上fork别人的分支到目录下 git clone https://github.com/_your/_project.git 2. 进到 _project 目录下,然后增加远程分支(fork的分支),名为 update_stream(名字任意)到本地 git

Ubuntu Linux下通过代理(proxy)使用git上github.com

github.com,作为程序员的代码仓库,我们经常会用到.但有时候我们不能直接通过网络链接它,只能通过代理. 这里我有一台代理服务器,起初我以为在终端设置了代理环境就行了,其设置为在你的~/.bashrc里增加以下几行: export http_proxy="http://proxy-server:3128/" export https_proxy="http://proxy-server:3128/" export ftp_proxy="http://

直接利用本地git上传项目到github

http://m.blog.csdn.net/article/details?id=50441442 本文将详细介绍如何托管你的项目到github上   转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50441442   一.首先你要有三个东西  github账号.上传工具msysgit 和 你的项目. 1.注册一个github账号 要托管到github,那你就应该要有一个属于你自己的github帐号,所以你应该先注册一个账号. 打

如何使用Git上传项目代码到github

github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 1.注册账户以及创建仓库     要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程. 2.安装客户端tortoiseGit     github是服务端,

git上传代码到github

git上传代码带github [[email protected] ~]# git init [[email protected] ~]# git add zeppelin [[email protected] ~]# git commit -m "first commit" *** Please tell me who you are. Run git config --global user.email "[email protected]"  git conf