前言
最近笔者在整理项目开发文档,深知代码版本管理的重要性,而 Git 作为代码版本管理的扛把子工具深受广大猿类喜爱。本篇文章旨在记录笔者日常开发工作中一些常用的 Git 应用实践。
常用命令
下面是笔者常用的一些 Git 命令:
命令 | 说明 |
---|---|
git add --all |
将当前工作区(working directory)修改添加到暂存区(stage),只有添加到暂存区的修改才能被提交(commit) |
git checkout branch_name |
切换到名为 branch_name 分支 |
git checkout -b branch_name |
创建名为 branch_name 的新分支 |
git checkout commit_id |
切换到 id 为 commit_id 对应的提交 |
git checkout tag_number |
切换到 tag 号 为 tag_number 对应的提交 |
git commit -m "comment" |
向本地仓库提交修改,comment 代表本次提交的注释内容 |
git push |
向远程仓库推送更新本地提交 |
git push --tags |
向远程仓库推送本地仓库的所有 tag 信息 |
git stash |
将工作区与暂存区中的修改临时保存到 git 栈(需要时可以恢复),并将工作区与暂存区恢复至上一次提交的状态 |
git stash save -u "message" |
将工作区与暂存区中的修改以及未被追踪的修改(-u)临时保存到 git 栈(需要时可以恢复),并将工作区与暂存区恢复至上一次提交的状态,message 表示此次操作的备注信息 |
git stash list |
列举当前 git 栈中所有被临时保存的修改,每一次临时修改都对应唯一的 stash_id,从 0 开始,依次往后追加 |
git stash pop |
将 git 栈栈顶(即最新的)的临时修改弹出并恢复至当前分支 |
git stash apply stash@{stash_id} |
将 git 栈中 stash_id 对应的临时修改恢复至当前分支,但不会删除 git 栈中的对应内容 |
git stash drop stash@{stash_id} |
将 git 栈中 stash_id 对应的临时修改删除 |
git stash clear |
删除 git 栈中所有的临时修改 |
git tag tag_number |
为最新提交打上名为 tag_number 的 tag 号 |
git tag tag_number commit_id |
为 id 为 commit_id 对应的提交打上名为 tag_number 的 tag 号 |
git tag -d tag_number |
删除本地仓库名为 tag_number 的 tag 号 |
git push origin :refs/tags/tag_number |
删除远程仓库名为 tag_number 的 tag 号 |
git reset --hard HEAD |
丢弃工作区与暂存区中的修改(未被跟踪的修改需要先添加至暂存区),并恢复至最新提交的状态 |
git reset --hard commit_id |
丢弃工作区与暂存区中的修改(未被跟踪的修改需要先添加至暂存区),并恢复至 id 为 commit_id 对应的提交的状态 |
git branch -a |
查看本地及远程的所有分支 |
git branch -D branch_name |
删除本地仓库名为 branch_name 的分支 |
git push origin --delete branch_name |
删除远程仓库仓库名为 branch_name 的分支 |
git log |
查看提交日志 |
git status |
查看工作树状态,分别列举工作区和暂存区中的修改 |
git diff |
详细展现工作树与上次提交间的变更 |
git diff branch1 branch2 |
详细展现 branch2 分支相比 branch1 分支的修改 |
git config --list |
查看本地仓库的 git 配置 |
善用每一个命令的 --help
选项可以帮助你快速地了解该命令。
alias 别名
为常用命令设置 alias 别名可提升工作效率,具体设置在 ~/.gitconfig
文件中,下面是笔者常用的一些 git alias 别名:
1 | [alias] |
其中,lg
别名可以很好地美化提交历史显示,例如下图清晰地展示了 Apollo 本地仓库 master 分支上两周内的提交历史:
配置 Ubuntu 终端默认显示所在 Git 仓库的当前分支
Ubuntu 环境中,在一个 Git 仓库下打开终端无法显示当前所处分支,很不方便,可以按照如下步骤进行配置解决该问题:
(1)在终端中打开 bash shell 的配置文件 .bashrc
:
1 | sudo gedit ~/.bashrc |
(2)在文件末尾添加如下 shell 代码:
1 | # These shell commands block are for the purpose of displaying the |
(3)使更改立即生效:
1 | source ~/.bashrc |
作者发表在独立博客的几篇 Git 系列小文章 可提供一些其它有益参考,此外,廖雪峰的 Git 系列教程 是不错的 Git 学习资料。如果读者朋友有哪些其它的可提升工作效率的 Git 命令或应用技巧也请不吝赐教。