Git 命令简记
虽然现在各种 Git 可视化工具都好用的很,但是常用的命令能熟练使用还是比较好的,好记性不如烂笔头,这里记下 git 工具的命令,方便日后需要用到的时候快速翻阅与回顾。
初始配置
1. 初始化目录
进入相应目录,使用命令: git init ,会在目录下生成 .git 目录,目录下都是 git 的记录信息,切不可乱删除。
2. 设置 库级别 签名,仅在当前本地库有效:
git config user.name ChiFuYong
git config user.email g3545616@gmail
详细信息保存于当前库目录的 ./git/conf 中,使用 cat conf 即可看到详细信息。
3. 设置 全局级 签名,对登录系统的当前用户全局有效
git config --global user.name ChiFuYong
git config --global user.email g3545616@gmail
详细信息保存于 ~/.gitconfig 中,使用 cat ~/.gitconfig 看到如下信息:
注:库级别优先于全局级别,二者都有时采用库级别。签名用于区分不同开发人员身份,与远程 Git 服务器上的账号密码无关。
4. .gitconfig 中配置忽略文件(java.gitignore)
编辑 vim ~/.gitconfig ,所有的 git 库都会忽略相应的文件,添加内容如下:
[core]
excludesfile = /home/guan/Java.gitignore
java.gitignore 内容如下(详细可参考 Github项目):
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Eclipse ignore
.classpath
.project
.settings
# Maven Compiled Directory
target
# IDEA ignore
.idea
*.iml
out
基本操作命令
-
git init
初始化仓库命令 -
git status
查看工作区、暂存区状态 -
git add [ file name ]
将工作区的文件(新建 or 修改)添加到暂存区,git add . 表示添加所有修改过得文件进暂存区 -
git commit -m " commit message " [ file name]
将暂存区的文件提交到本地库,-m 表示此次提交的修改概述。 -
git log
查看 commit 的详细历史记录,其他常用命令参数如下:
git log --pretty=oneline
git log --oneline
git reflog
三者区别如下图:
-
git diff [file name]
比较工作区中文件和暂存区差别。 -
git diff [版本号] [file name]
工作区文件和本地库历史版本比较。 -
git reset
版本回退/前进,有三种方式后退,参数作用入下:
--soft # 仅仅在本地库移动 HEAD 指针
--mixed # 1. 在本地库移动 HEAD 指针 2. 重置暂存区(默认方式)
--hard # 1. 在本地库移动 HEAD 指针 2. 重置暂存区 3. 重置工作区
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]
把 [branch name] 分支合并到当前分支 -
git rebase [branch name]
从当前分支合并 [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 [http://github.com/....]
克隆远程服务器仓库代码(默认拉取 master 分支),加上 -b [branch name] 参数可以拉取
[branch name] 分支。 -
git fetch
更新本地的远程跟踪分支 -
git pull
相当于 fetch + merge ,先更新远程跟踪分支(例如:origin/master),再合并 origin/master 合并到 master 分支,有冲突的话需要解决冲突。 -
git push [别名] [分支名]
推送代码到远程服务器,有冲突的话需要 pull 解决代码冲突后,在 push 到远程服务器。