更新时间:2019年02月12日11时46分 来源:github官网 浏览次数:
什么是版本控制系统?
版本控制系统或VCS会跟踪人员和团队一起协作项目时的更改历史记录。随着项目的发展,团队可以运行测试,修复错误并提供新代码,并确信任何版本都可以随时恢复。开发人员可以查看项目历史记录以找出:
·做了哪些更改?
·是谁做出了改变?
·什么时候做出改变?
·为什么需要更改?
·什么是分布式版本控制系统?
Git是通常用于开源和商业软件开发的分布式版本控制系统(DVCS)的示例。DVCS允许完全访问项目的每个文件,分支和迭代,并允许每个用户访问所有更改的完整且自包含的历史记录。与曾经流行的集中式版本控制系统不同,像Git这样的DVCS不需要与中央存储库的持续连接。开发人员可以在任何地方工作,并可以从任何时区异步协作。
如果没有版本控制,团队成员将受到冗余任务,较慢的时间线和单个项目的多个副本的影响。为了消除不必要的工作,Git和其他VCS为每个贡献者提供了一个统一且一致的项目视图,展示了正在进行的工作。查看变更的透明历史,由谁创建,以及他们如何为项目的开发做出贡献,有助于团队成员在独立工作时保持一致。
为什么Git?
根据最新的Stack Overflow开发人员调查,超过70%的开发人员使用Git,使其成为世界上使用最多的VCS。Git通常用于开源和商业软件开发,为个人,团队和企业带来显着的好处。
Git允许开发人员在一个地方查看他们的变更,决策和任何项目进展的整个时间表。从他们访问项目历史的那一刻起,开发人员就拥有了解它并开始贡献所需的所有上下文。
开发人员在每个时区工作。使用像Git这样的DVCS,可以在保持源代码完整性的同时进行协作。使用分支,开发人员可以安全地建议更改生产代码。
使用Git的企业可以打破团队之间的沟通障碍,让他们专注于做最好的工作。此外,Git使整个企业的专家能够在重大项目上进行协作。
什么是存储库?
一个仓库,或Git项目,包括与项目相关的文件和文件夹的整个集合,每个文件的修订历史记录一起。文件历史记录显示为称为提交的快照,并且提交作为链接列表关系存在,并且可以组织成称为分支的多个开发行。由于Git是DVCS,因此存储库是自包含单元,拥有存储库副本的任何人都可以访问整个代码库及其历史记录。使用命令行或其他易用的接口,git存储库还允许:与历史记录,克隆,创建分支,提交,合并,比较代码版本之间的更改等进行交互。
在存储库中工作可以保持开发项目的组织和保护。鼓励开发人员修复错误或创建新功能,而不必担心会破坏主线开发工作。Git通过使用主题分支来实现这一点:历史记录中的提交的轻量级指针可以在不再需要时轻松创建和弃用。
通过像GitHub这样的平台,Git还为项目透明度和协作提供了更多机会。公共存储库可帮助团队协同工作,以构建最佳的最终产品。
基本Git命令
要使用Git,开发人员使用特定命令来复制,创建,更改和组合代码。这些命令可以直接从命令行执行,也可以使用GitHub Desktop或Git Kraken 等应用程序执行。以下是一些使用Git的常用命令:
git init
初始化一个全新的Git存储库并开始跟踪现有目录。它在现有目录中添加了一个隐藏的子文件夹,其中包含版本控制所需的内部数据结构。
git clone
创建已远程存在的项目的本地副本。克隆包括所有项目的文件,历史记录和分支。
git add
发生变化。Git跟踪对开发人员代码库的更改,但是有必要暂存并拍摄更改的快照以将其包含在项目的历史记录中。此命令执行分段,这是两步过程的第一部分。任何已暂存的更改都将成为下一个快照的一部分,并成为项目历史的一部分。分别进行分段和提交可使开发人员完全控制其项目的历史记录,而无需更改其编码和工作方式。
git commit
将快照保存到项目历史记录中并完成更改跟踪过程。简而言之,提交功能就像拍照片一样。任何已经上演的东西都git add将成为快照的一部分git commit。
git status
将更改状态显示为未跟踪,已修改或已暂存。
git branch
显示在本地工作的分支。
git merge
将发展线融合在一起。此命令通常用于组合在两个不同分支上进行的更改。例如,当开发人员想要将来自功能分支的更改组合到主分支以进行部署时,他们会合并。
git pull
使用远程对应的更新更新本地开发线。如果队友已经对远程分支进行了提交,开发人员会使用此命令,并且他们希望在本地环境中反映这些更改。
git push
使用本地提交给分支的任何提交来更新远程存储库。
从Git命令的完整参考指南中了解更多信息。
探索更多Git命令
有关Git实践的详细介绍,展示了如何充分利用一些Git命令。
git status
两步提交
git pull 和 git push
GitHub如何适应
GitHub是一个Git托管存储库,它为开发人员提供工具,通过命令行功能,问题(线程讨论),拉取请求,代码审查或在GitHub Marketplace中使用一系列免费和购买应用程序来发送更好的代码。通过GitHub流程等协作层,拥有1500万开发人员的社区以及拥有数百个集成的生态系统,GitHub改变了软件的构建方式。
GitHub如何工作
GitHub直接将协作构建到开发过程中。工作被组织到存储库中,开发人员可以在其中概述需求或方向并为团队成员设置期望。然后,使用GitHub流程,开发人员只需创建一个分支来处理更新,提交更改以保存更新,打开拉取请求以提出并讨论更改,并在每个人都在同一页面上时合并拉取请求。
GitHub流程
GitHub流程是一个基于分支的轻量级工作流程,围绕全球团队(包括我们的团队)使用的核心Git命令构建。
GitHub流程有六个步骤,每个步骤在实施时都有明显的好处:
创建分支:从规范部署分支(通常master)创建的主题分支允许团队为许多并行工作做出贡献。特别是短命的主题分支,可以使团队专注并快速发展。
添加提交:分支内的开发工作快照可在项目历史记录中创建安全,可恢复的点。
打开拉取请求:拉取请求宣传项目的持续努力,并为透明的开发过程定下基调。
讨论和审查代码:团队通过评论,测试和审查开放拉取请求来参与代码审查。代码审查是开放和参与性文化的核心。
合并:点击合并后,GitHub会自动执行本地“git merge”操作。GitHub还在合并的拉取请求中保留整个分支开发历史记录。
部署:团队可以选择最佳的发布周期或合并持续集成工具,并确保部署分支上的代码经过了强大的工作流程。
了解有关GitHub流程的更多信息
开发人员可以在下面提供的资源中找到有关GitHub流的更多信息。
互动指南
GitHub Flow视频
GitHub和命令行
对于刚接触命令行的开发人员,GitHub培训团队已经整理了一系列关于Git命令的教程来指导方向。有时候,一系列命令可以描绘出如何使用Git的图片:
示例:为现有存储库提供帮助
# download a repository on GitHub.com to our machine git clone https://github.com/me/repo.git # change into the `repo` directory cd repo # create a new branch to store any new changes git branch my-branch # switch to that branch (line of development) git checkout my-branch # make changes, for example, edit `file1.md` and `file2.md` using the text editor # stage the changed files git add file1.md file2.md # take a snapshot of the staging area (anything that's been added) git commit -m "my snapshot" # push changes to github git push --set-upstream origin my-branch
示例:启动新存储库并将其发布到GitHub
首先,您需要在GitHub上创建一个新的存储库。您可以在我们的Hello World指南中学习如何创建新的存储库。不要使用README,.gitignore或License初始化存储库。这个空的存储库将等待您的代码。
# create a new directory, and initialize it with git-specific functions git init my-repo # change into the `my-repo` directory cd my-repo # create the first file in the project touch README.md # git isn't aware of the file, stage it git add README.md # take a snapshot of the staging area git commit -m "add README to initial commit" # provide the path for the repository you created on github git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git # push changes to github git push --set-upstream origin master
示例:贡献给GitHub上的现有分支
# assumption: a project called `repo` already exists on the machine, and a new branch has been pushed to GitHub.com since the last time changes were made locally # change into the `repo` directory cd repo # update all remote tracking branches, and the currently checked out branch git pull # change into the existing branch called `feature-a` git checkout feature-a # make changes, for example, edit `file1.md` using the text editor # stage the changed file git add file1.md # take a snapshot of the staging area git commit -m "edit file1" # push changes to github git push
协作开发的模型
人们在GitHub上合作有两种主要方式:
1.共享存储库
2.叉和拉
使用共享存储库,个人和团队被明确指定为具有读取,写入或管理员访问权限的贡献者。这种简单的权限结构与受保护的分支和Marketplace等功能相结合,可以帮助团队在采用GitHub时快速进步。
对于开源项目或任何人都可以贡献的项目,管理个人权限可能具有挑战性,但是fork and pull模型允许任何可以查看项目的人做出贡献。fork是开发人员个人帐户下项目的副本。每个开发人员都可以完全控制他们的分支,并可以自由地实现修复或新功能。在货叉中完成的工作要么保持独立,要么通过拉动请求浮现回原始项目。在那里,维护人员可以在合并之前查看建议的更改。
猜你喜欢:
程序员刷题神器-趣IT(https://www.funit.cn)