git reset
git reset
:回滚到某次提交。git reset --soft
:此次提交之后的修改会被退回到暂存区。git reset --hard
:此次提交之后的修改不做任何保留,git status
查看工作区是没有记录的。
回滚代码
如果需要删除的 commit 是最新的,那么可以通过 git reset
命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:
git log // 查询要回滚的 commit_id
git reset --hard commit_id // HEAD 就会指向此次的提交记录
git push origin HEAD --force // 强制推送到远端
误删恢复
如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:
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仓库
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件;
git add .
添加当前目录下的所有文件;
- 使用命令
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]
视频教程: git合并多个commitGit工作流和核心原理 | GitHub基本操作 | VS Code里使用Git和关联GitHub
git reset
git reset
:回滚到某次提交。git reset --soft
:此次提交之后的修改会被退回到暂存区。git reset --hard
:此次提交之后的修改不做任何保留,git status
查看工作区是没有记录的。
回滚代码
如果需要删除的 commit 是最新的,那么可以通过 git reset
命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:
1. git log // 查询要回滚的 commit_id
2. git reset --hard commit_id // HEAD 就会指向此次的提交记录
3. git push origin HEAD --force // 强制推送到远端
误删恢复
如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:
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仓库
- 使用命令
git add <file>
,注意,可反复多次使用,添加多个文件;
git add .
添加当前目录下的所有文件;
- 使用命令
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]