Git学习总结(1)——简介与基本操作

Git简介

  • Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持

Git 工作流程

Git 的一般工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

基本概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区: stage,或 index。一般存放在 “.git目录下” 下的 index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。

创建版本库( git init)

用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。在目录中执行 git init,就可以创建一个 Git 仓库了。

添加到暂存区 ( git add )

当我们初始化项目后, 在工作区里进行增加, 修改, 删除 文件操作.
然后可以通过 git add 将文件添加到暂存区,作为下次提交的(部分或全部)内容。

  • git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
  • git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
  • git add -A :是上面两个功能的合集, 也就是说包括删除的文件也会被提交(git add --all的缩写)

查看状态 ( git status )

git status 查看本地工作区、暂存区中文件的修改状态,如果加上 -s 参数,可以获得简短的结果输出。

查看改动 ( git diff )

执行 git diff 来查看执行 git status 的结果的详细信息。git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是什么。

向仓库提交代码 ( git commit )

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。

  • 使用 -m 选项以在命令行中提供提交注释。
  • 如果觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。

取消已缓存的内容 ( git reset HEAD )

HEAD指向的版本就是当前版本。git reset HEAD 命令用于取消已缓存的内容。执行 git reset HEAD 以取消之前 git add 添加。

删除文件 ( git rm )

git rm 从版本库中删除文件。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。git checkout – 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
我们可以使用 -r 参数进行递归删除, 即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:

移动/重命名 ( git mv )

git mv 命令用于移动或重命名一个文件、目录、软连接。

使用桌面客户端进行仓库管理

github desktop汉化

你可能感兴趣的:(Git)