坎德人的小包包

欧剃,游荡的坎德人,在他的旅途中收集了许许多多有趣的东西。

发表日期:2020-02-13

Git / GitHub 基础速查表

—— 带你迈向版本控制之路的新手指南

作者:Adam Snyder


Git 和 GitHub 是世界上最流行的版本控制工具(及平台),它们提供的软件协同开发和版本管理功能,使无数杀手级应用的出现成为了可能。

如果你还并不熟悉版本控制,或是还未在你的日常工作中用上版本控制系统,现在是时候突击补习一下了。


摄影:John Schnobrich | 图片来源:Unsplash

本文是一篇非常基础的入门指南,我们将一步一步教你开始使用 git,同时为以后的开发打下坚实的基础。在任何专业环境中,你几乎都能用上 git,而你越早开始熟悉它,你的职业竞争力就越强。

不但如此,使用 git 能给你的工作带来许多便利,比如让你在远程办公或是更换电脑的时候更加方便,而不需要考虑如何把项目搬到移动硬盘上带回家之类的问题。在开发团队项目的时候将更加容易管理你们的工作成果。

最后,你是否经历过把代码改的一团糟的情况,以至于你觉得从头开始会更容易?有了版本控制系统,你可以简单地回退到之前的稳定版本,清理掉你在凌晨两点时写下的那些疯狂想法。

Git 和 GitHub


图片来源:维基百科

Git 是版本控制系统本身。它是一个在命令行里运行的开源分布式版本控制系统(distributed version control system ,DVCS)。简单来说,它保存了整个项目的完整修改历史记录。你在项目里的修改记录,同一个项目在你的同事那边的修改记录,你们都各自都留有全部的备份。这刚好和 SVN(subversion)相反,后者把所有的修改历史存储在同一个地方。


图片来源:维基百科

而常常被人和 Git 搞混的 GitHub,则是一个代码仓库托管服务平台。你可能还不知道仓库是啥,但我们后面会提到的。让我们简单地说,GitHub 上有着非常非常多的代码仓库,在使用它的时候,你的代码(和修改历史)就是被上传到 GitHub 上的某个仓库里,而上传与管理使用的软件则是 Git 。这样,你和你的同事都能获取到项目的最新版本,你们可以同时进行工作,而不必打扰彼此。

开始使用

没错,Git确实有很多复杂的东西要学,但你只需要了解几个简单的关键知识就可以开始使用它了。随着你使用的不断深入,你将会慢慢遇到一些之前不了解的情况,那时再不断补充新的知识吧!让我们开始体验之旅!


git下载页面,图片来源:git-scm.com的截图

首先,你需要下载 Git。对于 Windows 用户,我建议你安装 Git Bash 软件(在安装过程中会自动给你装上)。对于 Mac 和 Linux 用户,使用你的终端就完全OK了。

安装完毕之后,你需要到 GitHub 上注册一个免费的账户。

那么,你现在已经准备好了 Git 软件本身,以及 GitHub 账户(用于把你的代码仓库托管在网上)啦,让我们开始你的第一个命令吧!

命令速查表

打开 Git Bash 或者你的终端,进入到项目文件夹中。对于 Git Bash 用户,你可以在项目文件夹上点右键,选择 Git Bash Here(在此处打开Git Bash),这样它就会自动定位到你的工作目录里。

git init

这个命令将在你的项目文件夹里创建一个 .git 代码仓库。所谓代码仓库(repository,简称 repo),你可以想象成一个数据库,里面存放了你对项目的所有改动,并记录下所有的历史记录。这个命令是你新建一个项目时要做的第一件事。

git config –global user.name “Your Name”

git config –global user.email “yourEmail@mail.com”

这是设置你提交改动时使用的个人信息,这只需要在安装完Git之后设置一次。

git add 文件名.扩展名

这个命令中的 文件名.扩展名 部分,你可以根据你需要添加到仓库的实际文件来修改。比如你刚写了一个 index.html,你可以输入:

git add index.html 

这将会把你指定的文件纳入一个叫做“暂存区”(staging area)的地方,你可以想象成这是一辆小车,你把要运往仓库里存起来的东西都放到里面。

git add .

如果你想要把当前目录下的所有文件都放入暂存,你可以输入这个命令,就不用挨个敲文件名啦。

git add *.html

如果你只想把所有 html 文件加入暂存,可以在命令中使用这样的通配符。扩展名可以依你的需要随意指定。

git status

显示你当前已经放入暂存区的文件,以及目前已经修改但还未放入暂存的文件。

git reset 文件名.扩展名

将指定文件移出暂存区。

git rm –cached filename.extension

将文件移除出暂存区,并且把文件标记为未跟踪。

git commit -m “对这次提交内容的描述与备注”

把暂存的文件提交到你本地的仓库中。在括号中你应该写一些简单的描述或是备注。为了保证以后反查的方便,你应当尽量简洁而明确地描述你在本次提交中做的改动,而不是含糊的“改了些东西”。

touch .gitignore

这条命令将创建一个名为 .gitignore 的文件。它用来让 git 忽略一些无须记录跟踪的文件。你可以用任意的文本编辑器打开它,把你不需要加入仓库的文件/文件夹的名字写在里面。被忽略的文件不会在你输入 git status 的时候出现,避免了你不小心把它们添加进了仓库。被忽略的文件的修改记录也不会被跟踪。

git branch 分支名

这条命令创建一个“分支”(branch),分支是从当前分支(往往就是 master 分支,也就是你新建仓库时的主分支)中把整个代码库复制出来,方便你在不影响原来代码的情况下,进行一些新的修改,比如添加一个新功能等。

git checkout “分支名”

这条命令让你能从仓库中取出之前创建的某条分支上的代码,以便在这条分支上继续工作。你可以在这里对代码进行任意修改,提交修改到这个分支中,把这个分支推送到 GitHub 上(见下);你也可以随时删除整条分支中的代码,比如你把什么东西搞坏了,或是你决定不需要添加这个新功能等等。

git merge 分支名

在 master 分支中,执行这条命令将会把你之前提交过的那条分支里的改动合并到主仓库中。

git remote add origin https://github.com/用户名/项目名.git

这条命令添加你远程代码仓库的地址。在此之前,所有的修改都在你电脑上的本地仓库里。你需要一个GitHub账户,才能在账户里新建一个远程代码仓库,之后你就可以将本地仓库的代码推送(push)到远程仓库中去。命令中要填的地址,是你在GitHub网站上建立的远程仓库的地址,在仓库建立好之后,你可以在网站上的Clone or download里看到你的Git仓库地址(需要在下拉菜单中选择Use HTTPS)


查看你的git仓库的地址,图片来源:github.com 的截图

git remote

列出和你项目相关联的远程仓库。

git push -u origin master

这条命令将会让你把本地仓库的内容推送到远程仓库的指定分支中(默认就是 master 分支)。你只需要在初次使用的时候这样写。

git push

在之后的修改和提交时,你只需要简单地这样写就能把改动提交到 GitHub 上了。

git clone https://github.com/用户名/项目名.git

如果你的电脑上没有本地仓库,你可以用这条命令把地址指向的远程仓库完整克隆(或下载)到本地,放在你终端(或 Git Bash)的当前工作目录下。

git pull

如果你和许多其他同事一起修改同一个代码库,你可以用这条命令把你的本地代码库同步到最新状态,这样你可以在别人已经修改更新的结果上继续进行工作。

总结

千里之行始于足下,希望今天的命令速查能帮你顺利踏上版本控制之路。未来要学的东西还很多,但这都基于今天我们提到的这些知识(和命令)。

如果你觉得学习曲线有点陡峭,千万别气馁,你很快就会体验到版本控制系统给你带来的方便和省心,希望这能为你的程序员职业生涯有所助益。加油!

(本文已投稿给「优达学城」。 原作: Adam Snyder 翻译:欧剃 转载请保留此信息)

编译来源: https://medium.com/better-programming/basic-git-github-cheat-sheet-fa020831cb35

标签:UdacityTranslateGithub

Powered by Jekyll on Github.io
2022 © 欧剃