Git的使用

戳这里下载Git

Git本地用法

在本章中,我们会介绍以下几个git常用的命令:- git init- git add- git status- git commit- git log- git checkout- git branch- git merge

同时大家可以参照本章完成“Git练习”,体验git的强大功能。

Use the Terminal(熟悉命令行用法的同学可以跳过这段)

打开git bash / cmd / shell / teminal /…

  1. 进入/切换目录

cd "需要打开的路径"

  1. 返回上一级目录

cd ../

  1. 列出当前目录下所有文件和文件夹

ls

  1. 新建文件夹/目录

mkdir "新建目录名称"

  1. 删除文件

rm "文件名称"

Git本地用法(local repository)

初始化

git init

首先,更改路径!!!使用cd命令切换到目标路径下面。

对于一个文件夹,你需要使用 git init 来初始化。相当于告诉git在当前目录下建立仓库(repository),它会在本地创建一个 .git 文件夹,这个文件夹里存放了完整的历史记录。然后,你就可以在这个文件夹里用 git 进行追溯了。

注意:请不要更改 .git 这个文件夹里的任何东西。除非你想重新初始化 git 历史。这样的话,请把整个 .git 文件夹删除,然后重新运行 git init

追踪

现在仓库所在的目录下可能有文件,但不意味着会被git跟踪识别,想要让git看到这些文件需要使用add命令

git add "路径/文件名及后缀"

当然,你可以使用 git add ./ 或者git add -A来追踪当前目录下所有文件。

如果你不想追踪一个文件了,你可以使用 git rm --cached <你不想追踪的文件名字>

查看文件状态

通过git status随时查看git的状态和我们输入命令的效果

git status

在提交之前,请先使用 git status 查看一下,哪些文件正在被追踪(即,这次提交会提交哪些文件),确认没有乱七八糟的东西被提交上去。

提交

当文件被git跟踪后,使用commit命令提交暂存区的指定文件到仓库区

git commit -m "message"

提交(commit),可以理解成进行一次备份。所有被追踪的文件,都会被备份,你可以随时还原。

提交的时候,使用:git commit -m "<在这里留言>"。留言的话,可以说一下这次提交主要改了什么东西,最好清晰一点,让下次自己一眼能知道这是哪个版本。

团队合作的时候,留言相当重要,你要把这次提交达成的功能清晰、完整地列出来。这可能不是一句话能讲清楚的,你需要用 git commit,然后在弹出来的文档里完整地撰写提交信息(编辑的时候会用到 Vim ,建议有精力的同学学习一下)。

还原

想要回溯到一个指定时刻,需要先查看提交日志信息,知道你要回溯到哪一次提交。

git log

用 git log 来查看所有历史的提交,这时候,你提交时候输入的留言(commit message)就很重要。

你会看到所有的 commit 后面,都有一个很长一串 0-9 数字以及 a-e 字母组成的编码。找到你想恢复的版本后,你只需要复制对应的编码,然后使用 git checkout <对应编码> 就可以回到对应的版本了。

git checkout <对应编码>

注意,这个操作就像把你的文件夹扔到了一台时光机上,所有代码就变成那次提交时的样子了。所以,git 会强制要求你在 checkout 操作之前先进行一次 commit 操作,不然当前的进度就全都丢失了。

分支

你可以使用 git branch <新分支名> 在当前分支基础上创建一个新的分支。

你可以使用 git branch 来查看所有分支以及当前所在的分支。

你可以使用 git checkout <分支名> 来跳转到某一个分支的版本。这个操作也会把当前文件夹送上时光机(当前代码进度会丢失)

合并

当你在 main 分支,想把 dev 分支最新版本的文件合并进来,你可以使用 git merge dev

注意,有时候会提示有 conflict,你可以看它提示的 conflict 在哪个文件,打开它,按 CTRL+F 搜索 ====(一堆等号),就能看到 git 帮你把两边的代码列出来。按照自己的意思改正好之后,你可以 commit 一下,就完成了 merge 操作。

Git远程用法(remote repository)

我们讲过,完整的文件夹历史会被存放在 .git 文件里。

Git的灵魂就在于,.git 文件可以放在远程服务器上,这样所有人都可以往同一个 .git 文件里提交东西,大家共享彼此的开发历史。

Github就提供了这样一个平台。推荐大家注册一个 GitHub 帐号,这样不仅可以在云端保存自己的代码历史、和其它人合作,还可以展示一些自己引以为傲的项目(然后给 m5-201 的课程点一个 Star ...lol)。

你可以自己创建一个 GitHub Repository注意不要创建 README 文件),然后按照它的指引,把本地初始化好的 git 推送到自己的 GitHub Repository 上。

远程的 git 相关操作比较简单,主要是这几个: - git push 把本地的 .git 上传到远程。 - git pull 把远程的 .git 合并到本地,并 checkout 到最新的版本。如果远程的 .git 被其它人 commit 过,你需要像合并分支那样解决 conflict。 - git clone 把远程的 .git 文件下载到本地。这个命令是下载整个初始化好的文件夹,不需要进行 git init

注意

戳这里查看 菜鸟教程