Skip to content

git reset

  • git reset :回滚到某次提交。
  • git reset --soft:此次提交之后的修改会被退回到暂存区。
  • git reset --hard:此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的。

回滚代码

如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:

scss
git log // 查询要回滚的 commit_id

git reset --hard commit_id // HEAD 就会指向此次的提交记录

git push origin HEAD --force // 强制推送到远端

误删恢复

如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:

bash
git relog // 复制要恢复操作的前面的 hash

git reset --hard hash // hash 换成要恢复的历史记录的 hash

注意:删除中间某次提交时最好不要用 git reset 回退远程库,因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

基本命令

设置用户

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

初始化一个Git仓库

 git init

仓库当前的状态以及下一步的提示

git status

添加文件到Git仓库

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;

git add .添加当前目录下的所有文件;

  1. 使用命令git commit

添加远程库

git clone https://example.com/example.git

提交到远程库

git push origin [branches]

删除远程库

如果添加的时候地址写错了,或者就是想删除远程库,可以用git remote rm <name>命令。使用前,建议先用git remote -v查看远程库信息:

git remote -v
origin  git@github.com:michaelliao/learn-git.git (fetch)
origin  git@github.com:michaelliao/learn-git.git (push)

然后,根据名字删除,比如删除origin

git remote rm origin

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

分支

  • 创建分支

    git branch [branch name]
  • 查看分支

    git branch
  • 切换分支

    git checkout [branch name]

​ 文件会直接从 master 分支复制过来

回滚代码

如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:

scss
1. git log // 查询要回滚的 commit_id



2. git reset --hard commit_id // HEAD 就会指向此次的提交记录



3. git push origin HEAD --force // 强制推送到远端

误删恢复

如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:

bash
git relog // 复制要恢复操作的前面的 hash

git reset --hard hash // hash 换成要恢复的历史记录的 hash

注意:删除中间某次提交时最好不要用 git reset 回退远程库,因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

基本命令

设置用户

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

初始化一个Git仓库

使用git init命令。

仓库当前的状态以及下一步的提示

git status命令可以让我们时刻掌握仓库当前的状态

添加文件到Git仓库

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;

git add .添加当前目录下的所有文件;

  1. 使用命令git commit

添加远程库

git clone https://example.com/example.git

提交到远程库

git push origin [branches]

删除远程库

如果添加的时候地址写错了,或者就是想删除远程库,可以用git remote rm <name>命令。使用前,建议先用git remote -v查看远程库信息:

$ git remote -v
origin  git@github.com:michaelliao/learn-git.git (fetch)
origin  git@github.com:michaelliao/learn-git.git (push)

然后,根据名字删除,比如删除origin

$ git remote rm origin

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

分支

  • 创建分支

git branch [branch name]

  • 查看分支

git branch

  • 切换分支

git checkout [branch name]

​ 文件会直接从 master 分支复制过来

  • 创建并切换分支

    git checkout -b [branch name]

  • 删除分支

    git branch -d [branch name]

    强制删除

    git branch -D [branch name]

Released under the MIT License.