Git 基本操作

git init

  Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。
  在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

  • 使用当前目录作为 Git 仓库:git init,该命令执行完后会在当前目录生成一个 .git 目录
  • 使用指定的目录作为 Git 仓库:git init newrepo,初始化后,会在 newrepo 目录下出现一个名为 .git 的目录。
$ mkdir test
$ cd test/
$ git init
Initialized empty Git repository in D:/Workspace/Git/test/.git/

git clone

  使用 git clone 从现有的 Git 仓库中拷贝项目。克隆仓库的命令格式为:git clone <repo>,如果需要克隆到指定的目录,可以使用以下命令格式:git clone <repo> <directory>。(repo 指 Git 仓库,directory 指本地目录)
  默认情况下,Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录。通常就是该 URL 最后一个/之后的项目名称,如果你想要一个不一样的名字,你可以在该命令后加上你想要的名称。

$ git clone git@github.com:lucky-zhangcd/hello.git
Cloning into 'hello'...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 12 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (12/12), 2.12 KiB | 310.00 KiB/s, done.

git add

  git add 命令可以将该文件添加到缓存。

$ touch hello.py
$ ls
hello.py  helloworld.py  README.md
$ git status -s
?? hello.py

git status

  git status 命令用于查看项目的当前状态。在使用该命令时加 -s 参数,可以获得简短的结果输出。如果没有加该参数则会详细输出内容。

$ git add hello.py
$ git status -s
A  hello.py
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)

            new file:   hello.py

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 commit 中使用 -m 选项以在命令行中提交注释。如果没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。


git reset HEAD

  git reset HEAD 命令用于取消已缓存的内容。git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。


git rm

  如果只是简单地从工作目录中手工删除文件,运行 git status 时就会有“Changes not staged for commit”的提示。

  • 要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作:git rm <file>
  • 如果删除之前修改过并且已经提放到暂存区域的话,则必须要用强制删除选项 -f:git rm -f <file>
  • 如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:git rm -- cached <file>
  • 可以递归删除,即如果后面跟的是一个目录作为参数,则会递归删除整个目录中的所有子目录和文件:git rm -r

git mv

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

原文地址:https://www.cnblogs.com/lucky-zhangcd/p/9193687.html