git
删除已经提交到远程仓库中的文件并在本地取消跟踪
1 | git rm -r --cached fileName or folder |
将指定文件夹里的文件推送到 gh-pages 分支
1 | git subtree push --prefix folder origin gh-pages |
merge 和 rebase
merge: 合并。把另一分支的提交合并到当前分支,这一次的合并操作会在当前分支上形成一个新的提交
rebase: 取出另一个分支的提交记录,“复制”它们,然后在当前分支逐个放下去
1 | git merge main |
1 | git rebase main |
HEAD
相对引用:
- 使用 ^ 向上移动 1 个提交记录
- 使用 ~
向上移动多个提交记录,如 ~3
撤销更改
还未提交到暂存区
1 | git checkout -- fileName |
该命令可理解为撤销最近的未提交的修改
已提交到暂存区
git reset
:通过把分支记录回退几个提交记录来实现撤销改动。向上移动分支,原来指向的提交记录就跟从来没有提交过一样(处于未加入暂存区状态),相当于“改写历史”git revert
:reset只能修改本地,当远程协作时是无效的。revert回退会生成一个新的提交,且这次提交和要回退到的版本是一模一样的
cherry-pick
把指定的提交记录复制到当前分支
git cherry-pick a1 a2 // 把 a1 a2 两次提交的内容复制到当前分支
交互式 rebase
如果知道所需要的提交记录(并且还知道这些提交记录的哈希值)时,用 cherry-pick
再好不过了!
如果不知道这些信息,可以使用 交互式 rebase
评论