

这篇文章包含了我从Udacity的How to Use Git and GitHub Course中学到的Git命令和GitHub函数,以及更多来自于自学/学习的知识。
关键事项和概念
版本控制 -一种在不同时间点保存不同版本文件的方法。 Dropbox,Wikipedia和Google Docs都有自己的版本控制方式。
Git —版本控制系统。 保存版本是手动完成的,您可以在计算机上本地完成。
shell —执行命令的命令行解释器。 Windows命令提示符是众所周知的外壳程序。
Git Bash —一个外壳,其中git是已知命令。 Git Bash是使用Git的常用方法。
GitHub-一个通过与Git交互来托管在线存储库的网站。 提供协作功能。
资料库 —一个使用git版本控制的目录,通常称为repo 。 它包含提交(除非您刚刚初始化/创建了一个存储库)。
工作目录 -提交更改之前在计算机上进行更改的区域。
暂存区 -在工作目录和提交更改之间的中间位置。 使用此区域可以查看更改并确保提交是合乎逻辑的。
commit —文件的保存版本。 一次提交可以更改多个文件。
分支 -提交的历史。
远程 -本地存储库更新和/或从中获取更改的在线存储库。
HEAD-分支上的最新提交。 进行新的提交时,此操作会自动更新。
master — Git中的默认分支。
origin —默认遥控器。
上游 -使用分叉但需要使用原始存储库更新本地远程服务器(原始/主服务器)时,原始存储库的通用实践远程名称。
常见的工作流程情况
制作存储库 -使用Windows资源管理器(如果在PC上)或使用mkdir在Git Bash中创建目录。 运行git init并创建存储库。
处理项目,对其进行更新,将其放置在GitHub上 —在工作目录中进行更改。 使用git add添加更改。 请注意,您可以添加多个文件。 使用git commit提交更改。 在git commit或您选择的编辑器中使用-m参数编写提交消息。 在GitHub上创建存储库。 使用git remote add origin URL添加远程。 使用git push origin master将本地更改放到远程上。
合并两个分支,删除一个分支 -签出要更新的分支。 运行git merge other-branch-name 。 运行git add changed-file 。 提交。 使用git branch -d branch-name删除旧分支。
解决合并冲突 -打开您选择的编辑器。 您可以通过搜索重复的小于号来搜索冲突,如下所示: >>>>> 。 >>>>>之后的部分是您的代码。 编码 是原始代码。 <<<<<之后的代码是其他人编写的冲突代码。 进行适当的更改,删除标记线,然后添加并提交合并更改。
注意:如果由于原始存储库(而非分叉)中的代码更改而在请求请求中遇到合并冲突,则需要通过创建新的远程服务器(称为上游)来更新本地远程服务器(通常是源服务器/主服务器) ),指向原始存储库。 然后,您将解决所有冲突,将更改推送到派生,并且您的拉取请求应自动更新为可合并的。
为项目贡献代码 -在单独的分支上编写新代码。 这被认为是惯例。 将其推入叉子。 在GitHub上打开请求请求。
Git命令
git init –用于在您的计算机上创建一个存储库。 在目录中执行此操作。
git add –用于将文件添加到暂存区(也称为索引)。 要添加的文件是参数。
例如: git add info.txt
注意,暂存区域是工作目录和master分支之间的位置。
git commit –用于将文件从暂存区添加到分支。 不带任何参数,您可以配置Git打开您选择的编辑器,然后在其中写入提交消息。 您还可以编写git commit -m然后在括号中写上commit消息。
例如: git commit -m "Fix typo"
git diff –不带参数,查看您在工作目录和暂存区之间所做的更改。 使用参数--staged运行,以查看暂存区域和分支中的更改之间的差异。 diff后可以有两个参数来比较不同的事物,例如提交或分支。
例如: git commit master origin/master
git log –查看不带参数的当前分支的提交历史。 添加另一个分支的参数以查看该分支的提交。
例如: git log origin/master
git status –查看在工作目录或暂存区中所做的更改。 不带参数。
git checkout –切换到分支进行处理。 需要分支作为参数。
例如: git checkout Korean
git clone –从GitHub将存储库下载到您的计算机上,并自动创建一个远程服务器。 添加参数的URL。
例如: git clone https://github.com/ellereeeee/reflections.git
git branch –不带参数运行时显示存储库中的分支。 使用参数运行以创建新分支。
例如: git branch new-feature
git remote –显示您拥有的遥控器。
git remote -v –显示URL提取和推送远程。 -v参数代表“详细”。
git remote add –创建一个可以将更改推送和拉到GitHub(可以说是云)的远程。 接受两个参数,即新遥控器的名称和URL。
例如: git remote add origin https://github.com/ellereeeee/reflections.git
git push –将本地提交更新到GitHub上的远程存储库。 接受两个参数,分别是remote和local分支。 例如: git push origin master 。 这会将本地master分支推送到GitHub上的原始远程存储库中。
git fetch –从远程存储库更新本地远程分支(但不更新工作目录!)。 本地远程分支的名称是由反斜杠(通常称为Origin / master)设计的远程名称和分支名称。 不需要参数。
git merge –将分支合并到您当前签出的分支中。 只需要争论,但有些人可能会放两个来可视化正在合并的内容。
例如:以下命令不同,但结果相同。
- master分支已签出。 您运行
git merge coins。 假设没有冲突,钱币分支将合并到主分支中。 - master分支已签出。 您运行
git merge master coins。 假设没有冲突,钱币分支将合并到主分支中。
git pull –从远程存储库更新本地分支(包括您的工作目录)。 这与运行git fetch然后git merge 。
GitHub函数
fork —名词和动词。 将其他人存储库的副本复制到您的GitHub帐户中。 允许您修改他人项目的副本,而无需修改原始创建者的资源库。 归功于原始作者。 与克隆类似,不同之处在于所有复制均在GitHub上完成。
拉取请求 -将您所做的更改或更新通知其他人以供审核,并可能将其合并到分支中。 合并请求可能是一个更恰当的术语,因为您是请求某人将您的代码合并到另一个代码分支中的。 它之所以命名为pull request,是因为他们可能会将您的代码拉入另一段代码中。 不要与git pull命令混淆!