git

常用命令

git init

可以初始化一个本地的 git 仓库,将创建一个 .git 隐藏文件夹,存储本地多次提交的历史信息。

git clone

git clone [url] :GitHub 上每一个项目都有一个 url,使用这个命令可以从远程克隆一个仓库。

git clone 也可以从本地一个目录克隆到另一个目录:

  • 创建 test 文件夹,并使用 git init 命令
  • 使用 git clone test test2 命令克隆本地仓库,报出 warning 称克隆了一个空的文件夹
$ mkdir test
$ cd test
$ git init
$ git clone test test2
Cloning into 'test2'...
warning: You appear to have cloned an empty repository.
done.

git add

git add . 将添加所有文件到暂存区,git add [filename] 将添加某个文件到暂存区。

$ touch a
$ touch b
$ git add .
$ git reset HEAD b

创建了文件 a 和文件 b,添加两份文件进入暂存区,但是想撤销添加文件 b,可以使用撤销添加的命令:git reset HEAD [filename] ,此时暂存区就只添加了文件 a。git 给了很充分的提示:

$ 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:   a

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

        b

git status

在上面的 add 操作中,使用了 git status 查看当前文件的状态,其实可以使用 git status -s 命令得到更加简短的输出:

$ touch a.txt
$ git status -s
?? a.txt # ?? 表示文件还没有添加进入暂存区

$ git add a.txt
$ git status -s
A  a.txt # A 表示文件已经添加进入暂存区

$ vim a.txt
$ git status -s
AM a.txt # AM 表示文件添加进入暂存区后又进行了修改

git commit

git commit -m "message" :提交暂存区的文件到本地仓库

git commit --amend:修改当前提交的 commit,会形成另一个 commit

git reset origin/master --hard:可以恢复到原来的 commit

git log

git log 可以查看 commit 的所有记录

git log --oneline 则以一行的形式简短展示每次 commit

git log --graph 则是以图的形式展示了分支的拓扑图

    file
      ↓   git add 
————————————
|  暂存区   |
————————————
      ↓   git commit
————————————
|   仓库    |
————————————
      ↓   git push
————————————
|  远程仓库  |
————————————

git remote

git remote 命令查看当前本地仓库连接了哪些远程仓库

git remote -v 则显示更为详细的信息

git push

git push 是将本地仓库和远程仓库连接的重要命令,以 GitHub 的连接为例,需要先在 GitHub 上创建一个空的远程仓库,接下来会提示你如何连接:

# 本地没有仓库时需要做的
echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:ChenBin113/test.git
git push -u origin master

# 本地有仓库需要做的
git remote add origin git@github.com:ChenBin113/test.git
git push -u origin master

主要是第一次连接需要添加远程仓库的地址,以后只需要在 commit 命令后使用 git push 命令即可。

网络不稳定,偶尔会出现 push 不成功的现象,隔一段时间重新 push 即可;或者在项目目录下有隐藏文件夹 .git,进入其中修改 config 文件,使用命令为 vim .git/config

将其 url = git@github.com:ChenBin113/test.git 修改为 url = https://github.com/ChenBin113/test,即可使用 https 协议进行 push。

git reset

git reset [id] 可以回退未 push 的版本;窗口没有关闭时,仍能撤销回退,只要记得版本 id 号就行

git reset origin/master --hard 可以回退到 origin/master 版本

原文地址:https://www.cnblogs.com/chenxianbin/p/11967939.html