Git 新手教程(快速上手)

基本了解

Git 是一些命令行工具的集合,可以用来跟踪、记录文件的变动,经常用于开源代码。比如你可以进行旧版本恢复、比对、分析、合并等等。这个过程被称之为 版本控制。已经有一系列的版本控制系统,比如 SVN、Mercurial、Perforce、CVS、Bitkeepe 等等。

Git 是分布式的,这意味着它并不依赖于中心服务器来保存你文件的旧版本。任何一台机器都可以有一个本地版本的控制系统,其实就是一个硬盘上的文件,我们称之为 仓库(repository)。如果是多人协作的话,你还需要一个线上仓库,用来同步代码等信息。这就是 GitHub、BitBucket 等网站做的工作。

安装 Git

在你的机器上安装 git 非常简单:

  • Linux – 打开终端,然后通过包管理安装,在 Ubuntu 上命令是:sudo apt-get install git
  • Windows – 推荐使用 git for windows,它包括了图形工具以及命令行模拟器。
  • OS X – 最简单的方式是使用 homebrew 安装,命令行执行 brew install git

基础命令

这里仅介绍基础命令,远程仓库和分支管理等功能在下一章节。

初始化仓库

git init

添加新文件

git add filename

检查状态

git status 是另一个非常重要的命令,它反馈给我们仓库当前状态的信息:是否为最新代码,有什么更新等等。

git status

查看日志

log

log 命令可以显示所有提交过的版本信息

git log
relog

可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

例如执行 git reset --hard HEAD~1,退回到上一个版本,用 git log 则是看不出来被删除的 commitid,用 git reflog 则可以看到被删除的 commitid,我们就可以买后悔药,恢复到被删除的那个版本。

git relog

提交代码

git commit -m "Adding files"

版本回退

  • git reset --hard HEAD^ 回退到上一版本
  • git reset --hard HEAD^ 回退到上上版本
  • git reset --hard HEAD~100 回退到上 100 个版本
  • git reset --hard 具体版本号回退到具体版本号

撤销修改

撤销修改有两种情况,文件在工作区和暂存区的撤销操作是不一样的。

撤销工作区文件修改
git checkout -- filename
撤销暂存区文件修改

已经被添加到暂存区的文件是无法通过 checkout 撤销操作的,需要通过 reset 命令撤销操作。

撤销修改回到最新的版本

git reset HEAD filename

删除文件

如果仅仅通过 rm 或者文件管理器中删除了版本库或者暂存区的文件,Git 能追踪到删除操作,但是并不会做任何操作,即你提交时,删除操作并不会提交上去。要让 Git 做出操作,需要通过 add 操作。

第二种方法就是通过 Git 的 rm 命令:

git rm filename

此命令会将删除文件的操作通知到 Git,而不需要再进行 add 操作。可以把该命令看成是集成了删除文件和 add 操作两个命令。

远程仓库

关联远程库

如果有了本地库,则需要关联远程库。

git remote add origin [email protected]:michaelliao/learngit.git

克隆远程库

克隆远程库会在本地创建并克隆该远程库。

git clone [email protected]:michaelliao/learngit.git

推送代码到远程库

把本地的提交传送到远程库的动作叫做 push。

git push 命令有两个参数,远程仓库的名字以及分支的明治。

git push origin master

git push 还有个 -u 参数,若加上此参数,则会把该远程仓库设为默认仓库,后面再做 push 操作,则不需要再指定主机。

git push -u origin master

拉取远程库代码

后面两个参数为主机名以及分支名。

git pull origin master 

分支管理

查看分支

$ git branch
* dev
  master

git branch 命令会列出所有分支,当前分支前面会标一个 * 号。

创建分支

创建分支

git branch dev

创建并切换到该分支

git branch -b dev

切换分支

前面已经在删除文件小节中介绍过 checkout 命令,git checkout命令用于切换分支或恢复工作树文件。git checkout是 Git 最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区。

git checkou master

合并分支

git merge 命令用于合并指定分支到当前分支。

git merge dev

删除分支

git branch -d dev

标签管理

通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。由于 Git 版本号是一串长长的字符串,同时查找 git message 也是一件非常繁琐的事情,通过给版本打标签可以让版本控制更加人性化。

创建标签

创建标签时若未指定版本号,若默认为当前版本。

git tag  

创建标签时还可以带上说明

git tag -a  -m "" 

查看所有标签

git tag

查看标签信息

git show 

删除标签

删除本地标签

git tag -d 

删除远程标签

git push origin :refs/tags/

推送标签到远程库

推送一个本地标签

git push origin 

推送全部标签

git push origin --tags

参考链接

廖雪峰的 Git教程
30分钟教你学会Git

你可能感兴趣的:(Git 新手教程(快速上手))