git入门教程

Git教程:开始版本控制

Tania Rascia 作于2015年9月24日:原文


这是为没有接触过Git的人准备的入门概念(first look。。。应该是入门概念吧),学习怎样用命令行初始化你的第一个git仓库。

对于没有和团队一起学习写代码的自学web开发者而言,git是一个很难搞定的项目。如果你一直一个人工作,并且想要一个关于如何开始git的说明,这就是为你准备的教程。

我是个任性的混蛋,我所有的项目都是以我自己命名的,首先是Linux,现在是git(俚语:饭桶,不讨喜的人)。

——  git的作者:Linus Torvalds

前提

  • 能创建以及上传一个网站

目标

  • 学习Git是什么以及它为什么那么有用
  • 创建一个本地项目并用命令行通过Git传到实时服务器上

什么是Git?

Git 是一个代码的版本控制系统(VCS)。它用于记录修改并且可以通过分支来允许开发人员或者开发团队一起工作。

Git不是GitHub。Git是一个系统而GitHub是一个仓库托管服务(最流行的仓库托管服务)。

Git vs. FTP

Git本身不对上传文件做任何操作,但是在一个简单的表单里面,你能用Git命令行移动文件到服务器。你也许已经很习惯了FTP(File Transfer Protocol)上传文件过程,所以我会展示一个简单的步骤来阐述怎样用Git来做同样的事情。

FTP

本地环境 ⇌ FTP程序 ⇌ 实时服务器
file:///Users/you/project ⇌ Transmit/WinFTP ⇌ https://example.com
我们今天用的Git方式与这个十分接近

Git

本地环境 ⇌ Git仓库 ⇌ 实时服务器
file:///Users/you/project ⇌ GitHub.com ⇌ https://example.com
当然对于upload(push)以及download(pull)这两种方法来说箭头可以指向任何路径。

Tower,SourceTree,Github for Mac/Wiondows 这些都是GUI,或者是图形化用户接口。一个GUI程序就是利用图形化来给用户带来更好的体验,例如Windows相对于MS-DOS。这些程序对于学习是很有用的,尤其是在一个团队的环境当中,但是在这篇文章当中,我们所有的东西都是拿命令行来搞的。别担心,不会麻烦的。

Step1:安装

Mac

打开Terminal程序,键入git–version然后按下enter。如果返回了版本号,那就说明Git已经安装好了。如果单独弹出-bath: git: command not found的话就从App Store安装Xcode。
在Xcode安装命令行工具:> Preferences > Downloads > Command Line Tools。这样你就能通过Terminal来使用Git了。
虽然在余下的文章当中没有必要,但是现在正是安装Homebrew的好时候,Homebrew是一个简化安装与管理开发工具的工具。

Windows

下载Git for Windows。然后你就能使用Git Bash程序了,它可以跟Terminal一样使用所有的的命令。

Step2:创建一个在线Git仓库

GitHub是最流行的托管仓库,所以如果你没有GitHub账户的话,就赶快去注册一个。
我假设你的用户名就是you,那么你的新GitHub账户就是github.com/you
一旦你创建了一个账户就通过点击Add New Repo来创建一个仓库(这个可能是老版本的,现在应该是点击右上角加号选择’New repository’)。进入创建新仓库页面的时候不要check README.md或.gitignore的checkbox。假设你把仓库命名为project,那么仓库会创建在github.com/you/project。现在仓库里应该完全是空的。

Step3:创建一个本地工程

如果你对命令不是不是很熟,请阅读命令行教程的第一章或前两章。
以下是最重要的命令,也是你必须全掌握的命令。

基本命令行参考

  • pwd Print Working Directory —显示你当前的工作目录。
  • ls List Directories —列出你当前目录的所有文件以及文件夹
  • cd Change Directory —变更到其它目录
  • mkdir Make Directory —创建一个新的目录

记住,Terminal(Mac)以及Git Bush(Windows)都是命令行shell。任何与GIt关联的Shell命令都是能通过这两个shell执行的。

当你打开Terminal,你将会从主目录开始。我将假设你电脑的用户名跟你的GitHub账户名是一样的。

确认你的当前位置
输入⇒

1
$ pwd

输出⇒

1
/Users/you

创建一个新文件夹名为project-local
$ mkdir project-local
列出你的目录

1
$ ls

你会看到project-local已经在目录列表里面了。当然你也可以通过Finder或者Explore创建目录,这里这么做是为了知道它是一个有用的命令。

移动到新建的目录里面

1
$ cd project-local

现在你已经进入了本地工程以及Git仓库即将存在的文件夹了。从这开始我们会开始用Git命令。Git有大量的命令,但我们现在只需要用到当中很少的几条。

基本Git命令参考

  • git config -配置Git
  • git init 初始化Git 仓库
  • git status 确认Git仓库的状态
  • git add 跟踪文件
  • git commit 提交已跟踪的文件
  • git push 上传文件
  • Git pull 下载文件

我们今天将用到的所有的指令都是用于你本地环境的。但是在你做其它任何事情之前还有一个很重要的全局步骤–配置你的Git账户
配置你的全局Git账户

1
$ git config --global user.name “Firstname Lastname”
1
$ git config --global user.name user.email username@email.com

确定你仍在project-local文件夹之下之后继续。
初始化Git仓库

1
$git init

初始化之后的空Git仓库在/Users/you/project-local/.git/
很好!现在你已经在本地有一个空的Git仓库了。
把我们在github.com创建的仓库关联本地目录。

1
$ git remote add origin https://github.com/you/project

Terminal虽然没有反应,但实际上已经成功了,继续添加文件到project-local目录。你想添加多少个就添加多少个,但我假设你添加了两个文件-index.html以及style.css。
检查以下你本地仓库的状态
输入⇒

1
$ git status

输出⇒

1
2
3
4
5
6
7
8
9
10
On branch master
Initial commit

Untracked files:
(use "git add ..." to include in what will be committed)

index.html
style.css

nothing added to commit but untracked files present (use "git add" to track)

OK,现在我们很清楚知道有两个文件在目录下了,但是他们现在还并不是Git仓库的一部分。这里我们用add命令(添加所有文件到仓库)。

1
$ git add.

git status再次check一下状态。
输出⇒

1
2
3
4
5
6
7
8
On branch master
Initial commit

Changes to be committed:
(use "git rm --cached ..." to unstage)

new file: index.html
new file: style.css

所以,那做了什么?文件从红色变成了绿色。我们已经准备好了么?嗯~现在还没有。
提交已追踪的文件到主分支。
输入⇒

1
$ git commit -am "Initial Commit"

输出⇒

1
2
3
4
5
[master (root-commit)] Initial
2 files changed, 34 insertions(+)

create mode index.html
create mode style.css

用这个命令,我提交了所有的文件(-a),包括了一条信息(-m),(提交信息)列在这里(“Initial Commit”)。这一行所有的东西都是强制需要的。
在你提交文件的时候别忘了添加评论。这个在Git当中的重要性就跟给代码写注释一样。如果你忘记添加评论并且出现了很奇怪的屏幕而且不能键入任何指令的话按下ESC键并且键入:q!然后按下ENTER。

Push文件到github.com上的Git仓库。

1
$ git push origin master

Terminal 将会提示你输入你的GitHub用户名与密码。当你输入用户密码的时候是不会显示任何你输入的任何内容的,但是实际上它已经输入了。

现在更新你的Github页面。成功了!现在你所有的文件都在github.com上托管了。

像Tower这样的GUI并不是Git运行所必须的,像github.com这样的在线仓库托管也不是必须的!尝试一下在两个本地目录之间创建一个Git关联吧。

Step4:Push到实时服务器

我将假设你已经有一个上传你的文件的托管处。可能是GeoCities?
当你通过FTP上传到服务器的时候,你会有下面这样的东西:

  • Host:ftp.domain.com
  • Username:you
  • Password:hunter2

你在FTP GUI输入那些认证之后就进到托管了,SSH(Secure Shell)跟那个很像,在命令提示之下你将用ssh命令进入托管。托管应该通过你的FTP设置显示你的SSH设置。

你可以在一个Terminal窗口搞定所有的事情,但是为了条理清晰,让我们打开一个新的Terminal窗口吧(Command + N)
SSH 进你的托管

1
$ ssh username@ssh.domain.com

这里会提示输入密码。
输入密码之后你就进来了!

记住当你SSH进你的托管之后,你已经连接上了托管了!你的本地环境已经不在那个Terminal存在了。让我们退出SSH返回到本地Terminal,键入exit然后enter。

最好还是打开一个FTP程序,这样你就能看到托管里面的文件结构以及你变更的地方。每一个托管都是不一样的。找到wwwroot或者公开文件夹,在你的远程Terminal窗口cd到正确的地方。

现在在你的托管某处创建一个新的文件夹。命名随意,可以跟GitHub仓库保持一致也可以不一致。在这个case里面我们将其命名为project-remote并假设它是在根目录下的一个文件夹。
一旦你进去了,你要跟之前一样遵循许多步骤,除了这一次,我们将从github.com上pull而不是push本地到github.com。

这时候我将忽视分支,因为我们一直都只是在分支上操作的。
列出你的Git设置。

1
$ git --list

这里要配置email以及用户名,就像个你在自己家电脑上干的那样。
打印工作目录以确定所在位置是正确的。

1
$ pwd

cdmkdir导航到你想让新git仓库存在的地方然后…
初始化git仓库。

1
$ git init

添加远程git仓库到原始主分支

1
$ git remote add origin https://github.com/you/project.git

从原始分支上pull

1
$ git pull origin master

现在你到http://domain.com/project-remote看看,所有文件都在那里了,并且还都是实时的。

我想写一篇当我尝试一次自学所有东西(Git,command line,以及SSH)并掉到陷阱的时候,能在那之前就能看一下的文章。
I wanted to write the article I wish I had in front of me when I tried to teach myself everything at once (Git, command line, and SSH) and ran into pitfalls.

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2021-2022 Jokan
  • Visitors: | Views: