Git基本命令
以下是一些基本的Git命令:
git add
:将文件添加到Git索引中git commit
:将索引中的文件提交到Git仓库中git status
:查看工作目录和索引的状态git log
:查看提交历史记录
Git高级命令
以下是一些高级的Git命令:
git reset
:回滚到某次提交git revert
:放弃某次提交git rebase
:变基
Github发布release版本
如果你想在GitHub上发布一个新版本,可以按照以下步骤操作:
- 在你的仓库页面上点击"Releases"选项卡。
- 点击"Draft a new release"按钮。
- 在弹出的窗口中填写新发布的版本号、标签、标题和描述等信息。
- 在描述中可以包含关于新版本的详细信息,例如修复的bug、新功能等。
- 上传你的软件包或文件。
- 点击"Publish release"按钮,完成发布。
- 其他用户可以通过下载或克隆你的代码库来获取新版本。
需要注意的是,创建Release需要有写入仓库的权限。如果你是仓库的管理员或拥有写入权限,就可以创建Release。如果没有写入权限,需要向仓库的管理员申请。
命令 | 作用 |
---|---|
Reset(重置) | 将分支顶端移至一个之前的提交。这个命令不要求提交消息。 |
Rebase(变基) | 允许你改变分支历史记录中提交的存放方式。通常用于将多个提交压缩成一个提交。 |
Revert(还原) | 还原共享分支上一个特定提交中做出的变更。需要push。 |
git reset 回滚到某次提交
git reset [<mode>] [<commit>]
参数 | 作用 |
---|---|
–soft | 头部重置为,会留下所有更改的文件“要提交的更改”。 |
–mixed | 重置索引但不重置工作树(即保留更改的文件但未标记提交)并报告尚未更新的内容。(默认) |
–hard | 重置索引和工作树。后对工作树中跟踪文件的任何更改都将被丢弃。 |
–merge | 重置索引并更新工作树中与和HEAD之间不同的文件,但保留索引和工作树之间不同的文件 |
–keep | 重置索引条目并更新工作树中在和HEAD之间不同的文件。 |
git revert 放弃某次提交
git revert 前后的提交仍会保留在 git log 中,而此次撤销会做为一次新的提交。
git rebase
- 编辑以前的提交消息
- 将多个提交合并为一个
- 删除或恢复不再需要的提交
- 重新设置另一个分支和当前分支状态之间的所有提交
git rebase --interactive other_branch_name
- 对当前分支中的最后几个提交进行rebase
git rebase -i HEAD~数字 # HEAD~数字 表示最近的几个commit
-
变基时有六个命令:
- pick
pick只是意味着包括提交。重新安排 pick 命令的顺序会更改提交的顺序。
如果选择不包括提交,则应删除整行。
- reword
重新设置 commit 的机会。提交所做的任何更改均不受影响。
- edit
进行更多提交,然后再继续进行变基。比如在两个提交之间插入更多提交。
- squash
可以将两个或多个提交合并为一个提交。提交被压缩到其上方的提交中。
- fixup
这类似于squash,但提交仅合并到其上方的提交中,并且舍弃消息。
- exec
可以对提交运行任意的Shell命令。
问题 | 解决方案 |
---|---|
回滚本地工作区未暂存的改动 | git checkout – |
回滚已暂存的改动,但未被提交 | git reset --hard |
回滚commit所做的改动,生成新的commit,log不影响 | git revert |
回滚已经提交的文件改动 | git rebase -i |