`
wangyanlong0107
  • 浏览: 499753 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

在Github和Git上fork之简单指南

    博客分类:
  • git
 
阅读更多

以我的经验来看,刚接触Git和GitHub时,最困扰的一件事情就是尝试解决下面的问题:在Git和GitHub上,我能做什么?

Git教程往往不会解决这个问题,因为它集中篇幅来教你Git命令和概念,并且不认为你会使用GitHub。GitHub帮助教程一定程度上弥补了这一缺陷,但是它每篇文章的关注点都较为狭隘,而且没有提供关于"Git vs GitHub"问题的概念性概述。

如果你是习惯于先理解概念,再着手代码的学习者,而且你也是Git和GitHub的初学者,我建议你先理解清楚什么是fork。为什么呢 ?

  1. Fork是在GitHub起步最普遍的方式。
  2. Fork只需要很少的Git命令,但是起得作用却非常大。
  3. Fork提供了对Git和GitHub最基础的了解,有益于你之后的工作。

本篇指南使用两张简单的图表,来教会你fork的两种主要工作流程。我并不打算涉及任何代码,但是在结论中,我会把你需要使用的代码的链接给你。

fork并且更新一个仓库

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

Alt text

Alt text

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的图表示意图

同步GitHub fork的图表示意图

  1. 从Joe的仓库中取出那些变化的文件:这是Git操作,使用该命令让你可以从Joe的仓库获取最新的文件。

  2. 将这些修改合并到你自己的仓库:这是Git操作,使用该命令使得那些修改更新到你的本地计算机(那些修改暂时存放在一个"分支"中)。记住:步骤1和2经常结合为一个命令使用,合并后的Git命令叫做"pull"。

  3. 将那些修改更新推送到你的GitHub仓库(可选):记住,你本地计算机不会自动更新你的GitHub仓库。所以,唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push,也可以等到你做了自己的一些修改,并已经本地提交后再执行推送操作。

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

结论

我希望这是一篇关于GitHub和Git 的 fork有用概述。现在,你已经理解了那些概念,你将会更容易地在实际中执行你的代码。GitHub关于fork和同步的文章将会给你大部分你需要的代码。

如果你是Git的初学者,而且你很喜欢这种学习方式,那么我极力推荐书籍Pro Git的前两个章节,网上是可以免费查阅的。

如果你喜欢视频学习,我创建了一个11部分的视频系列(总共36分钟),来向初学者介绍Git和GitHub。

分享到:
评论

相关推荐

    git客户端fork安装包

    在Git的世界里,Fork扮演着一个桥梁的角色,它允许用户从远程Git仓库(例如GitHub、GitLab或Bitbucket)克隆项目到本地,并进行编辑、提交和推送更改。下面将详细介绍Fork的一些关键特性: 1. **直观的用户界面**:...

    Git&GitHub_git和github使用手册_git手册_

    Git和GitHub是现代软件开发中不可或缺的工具,用于版本控制和协作。Git是一款分布式版本控制系统,而GitHub则是一个在线平台,提供了Git仓库托管、代码审查、项目管理等功能。本手册将帮助初学者理解这两个工具的...

    Git和GitHub教程

    Git和GitHub是软件开发领域中不可或缺的工具,尤其在开源项目和团队协作中扮演着重要角色。Git是一款分布式版本控制系统,而GitHub则是一个基于云的服务平台,提供了Git仓库托管、代码审查、问题追踪以及社交网络...

    github 使用指南 官方中文

    3. 编辑与提交:在本地修改文件后,使用 `git add`, `git commit` 和 `git push` 命令将更改同步到 GitHub。 4. 分支管理:通过 `git branch` 和 `git checkout` 命令创建和切换分支,实现并行开发。 5. 合并与...

    Github与Git简明教程1

    你可以通过`git init`命令在本地创建一个新的Git仓库,或者使用`git clone`命令从远程服务器(如GitHub)克隆一个现有的仓库。 2. **分支(Branch)**:分支代表项目的不同开发线路。默认分支通常名为“master”,...

    git可视化工具-Fork(mac版)

    本文将深入探讨Fork的功能、特点以及如何在Mac上安装和使用它。 1. **Fork简介** Fork是一款针对Git的高效可视化工具,特别适合于Mac OS操作系统。它提供了一个直观的界面,让开发者可以轻松地进行代码管理、分支...

    github漫游指南,详细的介绍github的使用

    - **创建仓库**:在GitHub上新建仓库,可以设定公开或私有,还可以选择是否自动添加README文件、.gitignore文件以及LICENSE等。 - **克隆与同步**:使用`git clone`命令将远程仓库克隆到本地,然后通过`git add`、`...

    小册-Git 原理详解及实用指南.zip

    Git 是一个分布式版本控制系统,由Linux之父Linus Torvalds于2005年创建,主要用于管理软件源代码的变更。本小册将深入探讨Git的基本原理,并提供实用的操作指南,帮助读者从新手到熟练掌握Git。 Git的核心概念包括...

    FORK工具git管理工具

    而FORK工具则是一款基于Git的高级代码协作平台,它提供了一系列便捷的特性来增强Git的使用体验,使得开发者在进行代码管理和团队协作时更加高效。 FORK工具的主要特点包括: 1. **图形化界面**: FORK提供了直观的...

    git和github使用说明示例

    Git和GitHub是软件开发中非常重要的版本控制工具和平台,对于任何想要参与或者管理开源项目,或是进行团队协作开发的人员来说,它们都是必不可少的知识点。以下是对Git和GitHub的详细说明。 Git是一款分布式版本...

    Git-1.9.4-preview20140929和GitHub

    Git和GitHub是现代软件开发中不可或缺的工具,尤其在开源...通过下载并安装提供的Git-1.9.4-preview20140929.exe和GitHubSetup.exe,你可以在Windows环境下快速开始你的Git和GitHub之旅,享受它们带来的高效和便捷。

    Fork安装包,Git可视化操作工具

    在弹出的窗口中,输入你要克隆的 Git 仓库的 URL(例如 GitHub 仓库的 URL)。 选择本地目标文件夹,然后点击 "Clone"。 查看仓库历史: 在 Fork 的主界面上,你可以看到仓库的提交历史,分支列表以及其他信息。 ...

    czbk公开课笔记git 两小时学会Git玩转Github.zip

    本压缩包文件“czbk公开课笔记git 两小时学会Git玩转Github.zip”包含了一份详细的Git学习指南,旨在帮助用户在短时间内掌握Git的基本操作,并能熟练运用Git与GitHub进行项目管理和协作。 Git是一个强大的工具,它...

    Git和Github简单教程1

    在团队项目合作中,GitHub提供了协作平台,成员可以通过`fork`、`pull request`和`merge`等方式进行代码的共享和审查。 GitHub还提供了其他功能,如 issue 追踪系统,项目管理面板,wiki等,方便团队协作和项目管理...

    Git-Github如何删除fork的项目.md

    github

    GitHub团队项目开发以及Git团队合作命令使用教程.pdf

    `Fork`操作是在GitHub上对他人项目进行复制,以便于在自己的仓库中进行修改而不影响原始项目。`Clone`操作则是从远程仓库克隆项目到本地,以便于开发和离线操作。对于团队而言,`Fork`和`Clone`可以有效地促进代码的...

    Git&github学习资料_git_git的版本控制_

    Git和GitHub是现代软件开发中不可或缺的工具,尤其在团队协作和版本控制方面扮演着重要角色。Git是一种分布式版本控制系统,而GitHub则是一个基于Git的在线平台,提供了代码托管、协同开发、问题追踪以及项目管理等...

    Git使用详解结合GitLab和GitHub

    【Git使用详解结合GitLab和GitHub】 Git是一个强大的开源分布式版本控制系统,由Linus Torvalds为Linux内核开发而创建。与传统的集中式版本控制系统(如CVS和Subversion)不同,Git采用分布式模式,每个开发者的...

    玩转git与github.pptx

    - **标签管理**:通过`git tag`命令创建标签,也可以直接在GitHub界面上创建标签,用于标记重要的版本或发布里程碑。 ### 知识点九:GitHub进阶应用 - **创建组织**:在GitHub上创建组织,用于团队协作和项目管理...

Global site tag (gtag.js) - Google Analytics