以我的经验来看,刚接触Git和GitHub时,最困扰的一件事情就是尝试解决下面的问题:在Git和GitHub上,我能做什么?
Git教程往往不会解决这个问题,因为它集中篇幅来教你Git命令和概念,并且不认为你会使用GitHub。GitHub帮助教程一定程度上弥补了这一缺陷,但是它每篇文章的关注点都较为狭隘,而且没有提供关于"Git vs GitHub"问题的概念性概述。
如果你是习惯于先理解概念,再着手代码的学习者,而且你也是Git和GitHub的初学者,我建议你先理解清楚什么是fork。为什么呢 ?
- Fork是在GitHub起步最普遍的方式。
- Fork只需要很少的Git命令,但是起得作用却非常大。
- Fork提供了对Git和GitHub最基础的了解,有益于你之后的工作。
本篇指南使用两张简单的图表,来教会你fork的两种主要工作流程。我并不打算涉及任何代码,但是在结论中,我会把你需要使用的代码的链接给你。
fork并且更新一个仓库
现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它。并且Joe将他的代码放在了GitHub仓库上。下面是你要做的事情:
Alt text
fork并且更新GitHub仓库的图表演示
-
Fork他的仓库:这是GitHub操作,这个操作会复制Joe的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。
-
Clone你的仓库:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
-
更新某些文件:现在,你可以在任何程序或者环境下更新仓库里的文件。
-
提交你的更改:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
-
将你的更改push到你的GitHub仓库:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。
-
给Joe发送一个pull request:如果你认为Joe会接受你的修改,你就可以给他发送一个pull request。这是GitHub操作,使用此操作可以帮助你和Joe交流你的修改,并且询问Joe是否愿意接受你的"pull request",当然,接不接受完全取决于他自己。
如果Joe接受了你的pull request,他将把那些修改拉到自己的仓库。胜利!
同步一个fork
Joe和其余贡献者已经对这个项目做了一些修改,而你将在他们的修改的基础上,还要再做一些修改。在你开始之前,你最好"同步你的fork",以确保在最新的复制版本里工作。下面是你要做的:
同步GitHub fork的图表示意图
-
从Joe的仓库中取出那些变化的文件:这是Git操作,使用该命令让你可以从Joe的仓库获取最新的文件。
-
将这些修改合并到你自己的仓库:这是Git操作,使用该命令使得那些修改更新到你的本地计算机(那些修改暂时存放在一个"分支"中)。记住:步骤1和2经常结合为一个命令使用,合并后的Git命令叫做"pull"。
-
将那些修改更新推送到你的GitHub仓库(可选):记住,你本地计算机不会自动更新你的GitHub仓库。所以,唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push,也可以等到你做了自己的一些修改,并已经本地提交后再执行推送操作。
比较一下fork和同步工作流程的区别:当你最初fork一个仓库的时候,信息的流向是从Joe的仓库到你的仓库,然后再到你本地计算机。但是最初的过程之后,信息的流向是从Joe的仓库到你的本地计算机,之后再到你的仓库。
结论
我希望这是一篇关于GitHub和Git 的 fork有用概述。现在,你已经理解了那些概念,你将会更容易地在实际中执行你的代码。GitHub关于fork和同步的文章将会给你大部分你需要的代码。
如果你是Git的初学者,而且你很喜欢这种学习方式,那么我极力推荐书籍Pro Git的前两个章节,网上是可以免费查阅的。
如果你喜欢视频学习,我创建了一个11部分的视频系列(总共36分钟),来向初学者介绍Git和GitHub。
相关推荐
在Git的世界里,Fork扮演着一个桥梁的角色,它允许用户从远程Git仓库(例如GitHub、GitLab或Bitbucket)克隆项目到本地,并进行编辑、提交和推送更改。下面将详细介绍Fork的一些关键特性: 1. **直观的用户界面**:...
Git和GitHub是现代软件开发中不可或缺的工具,用于版本控制和协作。Git是一款分布式版本控制系统,而GitHub则是一个在线平台,提供了Git仓库托管、代码审查、项目管理等功能。本手册将帮助初学者理解这两个工具的...
Git和GitHub是软件开发领域中不可或缺的工具,尤其在开源项目和团队协作中扮演着重要角色。Git是一款分布式版本控制系统,而GitHub则是一个基于云的服务平台,提供了Git仓库托管、代码审查、问题追踪以及社交网络...
3. 编辑与提交:在本地修改文件后,使用 `git add`, `git commit` 和 `git push` 命令将更改同步到 GitHub。 4. 分支管理:通过 `git branch` 和 `git checkout` 命令创建和切换分支,实现并行开发。 5. 合并与...
你可以通过`git init`命令在本地创建一个新的Git仓库,或者使用`git clone`命令从远程服务器(如GitHub)克隆一个现有的仓库。 2. **分支(Branch)**:分支代表项目的不同开发线路。默认分支通常名为“master”,...
本文将深入探讨Fork的功能、特点以及如何在Mac上安装和使用它。 1. **Fork简介** Fork是一款针对Git的高效可视化工具,特别适合于Mac OS操作系统。它提供了一个直观的界面,让开发者可以轻松地进行代码管理、分支...
- **创建仓库**:在GitHub上新建仓库,可以设定公开或私有,还可以选择是否自动添加README文件、.gitignore文件以及LICENSE等。 - **克隆与同步**:使用`git clone`命令将远程仓库克隆到本地,然后通过`git add`、`...
Git 是一个分布式版本控制系统,由Linux之父Linus Torvalds于2005年创建,主要用于管理软件源代码的变更。本小册将深入探讨Git的基本原理,并提供实用的操作指南,帮助读者从新手到熟练掌握Git。 Git的核心概念包括...
而FORK工具则是一款基于Git的高级代码协作平台,它提供了一系列便捷的特性来增强Git的使用体验,使得开发者在进行代码管理和团队协作时更加高效。 FORK工具的主要特点包括: 1. **图形化界面**: FORK提供了直观的...
Git和GitHub是软件开发中非常重要的版本控制工具和平台,对于任何想要参与或者管理开源项目,或是进行团队协作开发的人员来说,它们都是必不可少的知识点。以下是对Git和GitHub的详细说明。 Git是一款分布式版本...
Git和GitHub是现代软件开发中不可或缺的工具,尤其在开源...通过下载并安装提供的Git-1.9.4-preview20140929.exe和GitHubSetup.exe,你可以在Windows环境下快速开始你的Git和GitHub之旅,享受它们带来的高效和便捷。
在弹出的窗口中,输入你要克隆的 Git 仓库的 URL(例如 GitHub 仓库的 URL)。 选择本地目标文件夹,然后点击 "Clone"。 查看仓库历史: 在 Fork 的主界面上,你可以看到仓库的提交历史,分支列表以及其他信息。 ...
本压缩包文件“czbk公开课笔记git 两小时学会Git玩转Github.zip”包含了一份详细的Git学习指南,旨在帮助用户在短时间内掌握Git的基本操作,并能熟练运用Git与GitHub进行项目管理和协作。 Git是一个强大的工具,它...
在团队项目合作中,GitHub提供了协作平台,成员可以通过`fork`、`pull request`和`merge`等方式进行代码的共享和审查。 GitHub还提供了其他功能,如 issue 追踪系统,项目管理面板,wiki等,方便团队协作和项目管理...
github
`Fork`操作是在GitHub上对他人项目进行复制,以便于在自己的仓库中进行修改而不影响原始项目。`Clone`操作则是从远程仓库克隆项目到本地,以便于开发和离线操作。对于团队而言,`Fork`和`Clone`可以有效地促进代码的...
Git和GitHub是现代软件开发中不可或缺的工具,尤其在团队协作和版本控制方面扮演着重要角色。Git是一种分布式版本控制系统,而GitHub则是一个基于Git的在线平台,提供了代码托管、协同开发、问题追踪以及项目管理等...
【Git使用详解结合GitLab和GitHub】 Git是一个强大的开源分布式版本控制系统,由Linus Torvalds为Linux内核开发而创建。与传统的集中式版本控制系统(如CVS和Subversion)不同,Git采用分布式模式,每个开发者的...
- **标签管理**:通过`git tag`命令创建标签,也可以直接在GitHub界面上创建标签,用于标记重要的版本或发布里程碑。 ### 知识点九:GitHub进阶应用 - **创建组织**:在GitHub上创建组织,用于团队协作和项目管理...