入门配置
用户信息
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