黑马程序员技术交流社区

标题: Github官网git手册 [打印本页]

作者: 庭院深深深几许    时间: 2019-4-19 14:55
标题: Github官网git手册
什么是版本控制系统?
版本控制系统或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是开发人员个人帐户下项目的副本。每个开发人员都可以完全控制他们的分支,并可以自由地实现修复或新功能。在货叉中完成的工作要么保持独立,要么通过拉动请求浮现回原始项目。在那里,维护人员可以在合并之前查看建议的更改。





  传智的web前端培训课程一直紧随市场发展脚步,实时更新前沿、深度、覆盖面广的前端课程。
  传智全新升级的前端与移动开发课程新增了大热的小程序+小游戏、人脸识别、机器学习、大数据可视化等前沿技术,还加入了前所未有的全终端大型项目,让学员通过一个大型项目掌握从需求到开发再到上线部署的各项技能,为学员高薪就业增加砝码。
  更多的相关web前端培训课程请访问:http://www.itcast.cn/web/







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2