Git 命令简记

Git 命令简记
chify虽然现在各种 Git 可视化工具都很好用,但是常用命令能熟练使用还是比较好的。好记性不如烂笔头,这里记下 git 命令,方便日后快速翻阅。
初始配置
1. 初始化目录
进入相应目录,使用命令 git init,会在目录下生成 .git 目录,里面都是 git 的记录信息,切不可乱删除。
2. 设置库级别签名
仅在当前本地库有效:
1 | git config user.name ChiFuYong |
详细信息保存于当前库目录的 .git/config 中,使用 cat conf 即可查看。
3. 设置全局级签名
对登录系统的当前用户全局有效:
1 | git config --global user.name ChiFuYong |
详细信息保存于 ~/.gitconfig 中,使用 cat ~/.gitconfig 可看到如下信息。
注:库级别优先于全局级别,二者都有时采用库级别。签名用于区分不同开发人员身份,与远程 Git 服务器上的账号密码无关。
4. .gitconfig 中配置忽略文件(java.gitignore)
编辑 vim ~/.gitconfig,所有 git 库都会忽略相应文件,添加内容如下:
1 | [core] |
java.gitignore 内容如下(详细可参考 Github 项目):
1 | # Compiled class file |
基本操作命令
git init:初始化仓库git status:查看工作区、暂存区状态git add [file name]:将工作区的文件(新建或修改)添加到暂存区,git add .表示添加所有修改过的文件到暂存区git commit -m "commit message" [file name]:将暂存区的文件提交到本地库,-m表示此次提交的修改概述git log:查看 commit 的详细历史记录,其他常用命令参数如下:
1 | git log --pretty=oneline |
三者区别如下图:
git diff [file name]:比较工作区中文件和暂存区差别git diff [版本号] [file name]:工作区文件和本地库历史版本比较git reset:版本回退/前进,有三种方式,参数作用如下:
1 | --soft # 仅仅在本地库移动 HEAD 指针 |
git reset --hard [局部版本索引] 可直接恢复到相应版本,git reset --hard HEAD^ 表示回退到上个版本(多少个 ^ 代表回退多少个版本),git reset --hard HEAD~n 表示后退 n 步。
分支管理命令
git branch -v:查看全部分支git branch [branch name]:创建分支git branch -d [branch name]:删除分支git checkout [branch name]:切换分支git merge [branch name]:把指定分支合并到当前分支git rebase [branch name]:从当前分支合并指定分支,和 merge 有所区别,会把 commit 内容暂存起来然后再合并,合并后不会导致分叉
暂存操作命令
git stash save "信息":暂存当前工作区和暂存区内容,工作区将会变干净,开发时在需要排查其他分支的 bug 问题时常用git stash list:显示暂存过的所有列表git stash pop:恢复到最新的暂存数据到工作区,默认会把工作区和暂存区的改动都恢复到工作区。git stash pop stash@{X}可恢复到某个暂存记录,@{X}通过git stash list命令可以看到。注:git stash pop恢复暂存数据后,会删除恢复的那条暂存记录(类似于弹栈弹出去了)git stash apply:除了恢复后不会删除暂存记录,其他和git stash pop功能一样git stash drop stash@{X}:删除暂存的一条记录,@{X}通过git stash list命令可以看到git stash clear:删除所有暂存的记录
远程相关命令
git remote -v:查看当前所有远程地址别名git remote add [origin] [远程地址]:添加远程服务器关联地址,取名为 origin(默认)git remote remove [origin]:删除 origin 远程关联地址git clone [https://github.com/....]:克隆远程服务器仓库代码(默认拉取 master 分支),加上-b [branch name]参数可以拉取指定分支git fetch:更新本地的远程跟踪分支git pull:相当于fetch + merge,先更新远程跟踪分支(例如origin/master),再合并到本地分支,有冲突需要解决冲突git push [别名] [分支名]:推送代码到远程服务器,有冲突需要 pull 解决代码冲突后再 push 到远程服务器
评论
匿名评论隐私政策







