入门配置
用户信息
- git config –global user.name Simon - 设置自己的用户名 
- git config –global user.email jinmaup@gmail.com - 设置自己的邮箱 
查看配置
git config –list
查看自己 git 的配置信息
设置编辑器
git config –global core.editor vim
当你用 git 编辑文件时,编辑文件的文本编辑器会默认调用 vim
文本着色
git config –global color.ui true
可为大部分 git 的代码布上颜色
基础命令
建立版本库
- git init - 当前路径文件 初始化为 Git 仓库(可以发现 当前路径增加了.git 文件夹) 
- git init 文件夹名 - 新建一个文件夹,并将其初始化为 Git 代码库 
文件添加到暂存区
- git add . - 把当前目录所有未追踪文件,已修改的文件,添加到暂存区 (不包括被删除的文件) 
- git add 文件(夹)名 - 把特定文件(夹)添加到暂存区 
- git add -A - 提交所有的文件操作到暂存区 
- git add -u - 提交已修改的文件,被删除的文件(不包括新文件) 
- git add -p - 交互式的缓存提交,会提供多个选项来自定义提交内容、方式 
文件添加到本地仓库
- git commit -m”commit message” - 把暂存区的所有文件添加到本地仓库,-m”提交信息” (越详细越好) 
- git commit 文件(夹)名 -m”commit message” - 把特定文件(夹)添加到本地仓库,-m”提交信息” (越详细越好) 
- git commit -am”commit message” - 针对已经被追踪的文件,可以直接添加到本地仓库,不用先 add 在 commit. 
- git commit –amend -m”commit message” - 利用本次 commit 重写上一次 commit 
- git commit –amend –no-edit - 利用本次 commit 重写上一次 commit 不会重写上次 commit 的提交信息 
仓库状态获取
git status
可以立即获取本地仓库状态 以及 git 的步骤提示,建议多使用此命令
版本回退
- git reset –hard HEAD - 将工作区,暂存区,本地仓库恢复到上一个版本(–hard) 
- git reset –soft HEAD^^^ - 将本地仓库恢复到上三个版本,不会修改暂存区,工作区(–soft) 
- git reset –mixd HEAD~5 - 将暂存区,本地仓库恢复到上五个版本,不会修改工作区(–mixd,默认) 
- git reset –hard commitID - 将工作区,暂存区,本地仓库恢复到上指定版本其中 commitID 就是每一次 commit 的版本号,可以使用 git reflog 获取 
撤销暂存
- git reset HEAD file.txt - 撤销 file.txt 的 add 操作,使其变成不跟踪状态 
- git reset HEAD^ file.txt - 将上一次提交版本的 file.txt 重新置入缓存区 
撤销工作区
- git checkout – file.txt - (只针对未追踪文件)用历史中的 file.txt 替换现有工作区的 file.txt 如果文件增加到暂存区后 又进行了修改,那么执行命令后 将回到暂存区文件状态 
- git checkout HEAD – file.txt - 用最后一次提交版本中的 file.txt 替换现有工作区的 file.txt 
- git checkout commitID – file.txt - 用特定版本的 file.txt 替换现有工作区的 file.txt 
撤销提交
git revert commitID
撤销指定版本的 commit,并将此操作生成一个全新的 commit 并提交
文件操作
增
- touch - touch 文件名 : 新建文件 
- mkdir - mkdir 文件夹名: 新建文件夹 
- vim - vim 文件名 : 新建文件,并用 vim 模式打开该文件进行编写 
- git init - git init 文件夹名:新建一个文件夹,并将其初始化为 Git 代码库 
- printf - printf ‘content’ > 文件名 :新建一个文件,并把 content 注入其内容 
- echo - echo ‘content’ > 文件名 :新建一个文件,并把 content 注入其内容 
删
- rm - rm 文件名 : 删除文件 
- clean - git clean -f 文件名 :删除未跟踪文件 
改
- vim - vim 文件名 : 打开文件,并用 vim 模式进行修改 
- mv - mv 选定文件名 新的文件名:把选定文件名 修改为 新的文件名 
- printf - printf ‘content’ > 文件名 : 将 content 替换 文件原有内容 
- echo - echo ‘content’ > 文件名 : 将 content 替换 文件原有内容 
查
- pwd - 得到当前路径 
- cd - cd 路径 :进到某一文件路径 cd .. : 回退文件路径cd : 回到默认的路径 
- cat - cat 文件名:查看该文件的内容 
- ls - 查看该目录下的文件列表(不包括隐藏文件) 
- ls -a - 查看该目录下的文件列表(包括隐藏文件) 
- show - git show - : - :展示任意分支某一文件的内容 
分支操作
查看分支
- git branch - 列出本地分支 
- git branch -r - 列出远端分支 
- git branch -a - 列出所有分支 
- git branch -v - 查看各个分支最后一个提交对象的信息 
- git branch –merge - 查看已经合并到当前分支的分支 
- git branch –no-merge - 查看为合并到当前分支的分支 
- git remote show origin - 可以查看 remote 地址,远程分支 
新建分支
- git branch name - 新建一个名为 name 的分支 
- git checkout -b name - 新建一个名为 name 的分支,并自动切换为该分支 
- git branch [branch] [commit] - 新建一个分支,指向指定 commit 
- git branch –track [branch] [remote-branch] - 新建一个分支,与指定的远程分支建立追踪关系 
删除分支
- git branch -d name - 删除一个名为 name 的分支 
- git branch -D name - 强制删除一个名为 name 的分支 
- git push - : - 删除远程分支 
- git push origin –delete - 删除远程分支 
切换分支
- git checkout name - 切换一个名为 name 的分支 
- git checkout - - 切换上一个分支 
重命名分支
- git branch -m name将当前所在分支命名为 name 
标签
新建标签
- git tag [tag] - 新建一个 tag 在当前 commit 
- git tag [tag] [commit] - 新建一个 tag 在指定 commit 
- git tag v0.9 commitID - 对某次提交新建标签 
查看标签
- git tag列出所有 tag 
删除标签
- git tag -d [tag] - 删除本地 tag 
- git push origin :refs/tags/ - 可以删除一个远程标签 
推送标签
- git push origin –tags - 一次性推送全部尚未推送到远程的本地标签 
- git push origin - 可以推送一个本地标签 
远程仓库
- git remote - 显示所关联的远程仓库 
- git remote -v - 显示更详细信息 
- git remote add origin git@server-name:path/repo-name.git - 关联一个远程库 
- git remote rm name - 删除一个远程库 
- git remote rename - 将远程连接从 - 重命名为 
合并
- git rebase master - 将 master 分之上超前的提交,变基到当前分支 
- git rebase –interactive - 交互模式,修改 commit 
- git rebase –continue - 处理完冲突继续合并 
- git rebase –skip - 跳过合并 
- git rebase –abort - 取消合并 
查看汇总
查看信息
- git whatchanged –since=’2 weeks ago’ - 查看两个星期内的改动 
- git log –follow [file] - 显示某个文件的版本历史 
- git log –author=”John” - 它会显示所有作者叫 John 的提交 
- get log –after=”yesterday” - 查看昨天的历史信息 
- git log -3 - 展示最近 3 次历史信息 
- git log –graph - 可以看到分支合并图 
修改历史
git rebase -i commitID
将 pick 替换成 r , 然后回车,vi 退出可以使用 :x修改 git 的历史记录的提交信息
查看文件
- git diff HEAD – readme.txt - 可以查看工作区和版本库里面最新版本的区别 
- git diff –staged - 显示暂存区(已经 add)的文件和版本库文件的比较 
- git ls-files - 查看在暂存区的文件 
删除暂存
- git rm –cached 文件名把文件从暂缓区 返回至 工作区 
其他
忽略文件
echo node_modules/ >> .gitignore
添加忽略文件
打包
- git archive master –format=zip –output=master.zip - 将 Master 分支打包 
- git bundle create - 将历史记录包括分支内容打包到一个文件中 
- git clone repo.bundle - -b - 从某个 Bundle 中导入 
工作区
- git stash - 将工作区现场(已跟踪文件)储藏起来 
- git stash list - 查看保存的工作现场 
- git stash apply - 恢复工作现场 
- git stash drop - 删除 stash 内容 
- git stash pop - 恢复的同时直接删除 stash 内容 
- git stash apply stash@{0} - 恢复指定的工作现场 
查找内容
- git grep “Hello” - 从当前目录的所有文件中查找文本内容 
- git grep “Hello” v2.5 - 在某一版本中搜索文本 
帮助
git help -a
