Git 命令¶
显示当前路径:
pwd
配置 user.name 和 user.email:
git config --global user.name 'your_name'
git config --global user.email 'your_email@domain.com'
设置用户名:
git config --global [user.name](<http://user.name/>) ''
设置用户邮箱:
git config --global user.email ''
查看配置:
git config --list
config 的三个作用域(缺省的话等同于 local):
git config --local ##只对某个仓库有效,切换到另外一个仓库失效,在local中local的优先级比global高
git config --global ##当前用户的所有仓库有效,工作当中最常用
git config --sysstem ##系统的所有用户,几乎不用
##local的在.git/config里面;global的在个人home目录下的.gitconfig里面;system应该在git安装目录的下
查看 Git 状态:
git status
查看日志:
git log
把已有的项目代码纳入Git管理:
cd 项目代码所在的文件夹
git init
新建的项目直接用Git管理
cd 某个文件夹
git init your_project #会在当前路径下创建和项目名称同名的文件夹
cd your_project
拷贝文件
cp 来源文件路径 目标文件路径
拷贝文件夹
cp 源文件夹路径 目标文件夹路径
新建文件夹
mkdir 文件夹名
提交
git commit -m'changelog'
查看文件内容:
vi 文件名
cat 文件名
在 vi 中修改内容:c
退出 vi:
:q
保存更改:
:w!
退出命令行:
Ctrl + Z
将文件添加到暂存区(新加入的文件没有被Git管控)
git add 文件名
git add -u # 将已经纳入管控但发生修改的文件一起提交管控
将文件从暂存区删除
git rm 文件名
恢复暂存区和工作路径上所有的变更:
git reset --hard
重命名文件并自动纳入 Git 管控
git mv 原文件名 现文件名
查看提交日志
git log --oneline
git log -n1 --oneline #最近一次的提交
git log --all #查看所有分支的历史
git log --graph #图形化查看历史
查看本地有多少分支
git branch -v
git branch -av
创建分支并切换到新创建的分支
git checkout -b 新分支名 基于的分支名
切换分支
git checkout 分支名
删除分支
git branch -d 分支名 #清除分支
git branch -D 分支名 #强行清除分支
在浏览器中查看git log的帮助文档
git help --web log
cat HEAD 查看HEAD文件的内容
git cat-file #显示版本库对象的内容、类型及大小信息。
git cat-file -t b44dd71d62a5a8ed3 #显示版本库对象的类型
git cat-file -s b44dd71d62a5a8ed3 #显示版本库对象的大小
git cat-file -p b44dd71d62a5a8ed3 #显示版本库对象的内容
显示当前所在工作目录的全路径
pwd
0新建文件并添加内容
echo "内容" > 文件名
比较commit之间的差异
git diff commit名1 commit名2 #比较两个commit之间的差异
git diff HEAD HEAD^1 == git diff HEAD HEAD^ == git diff HEAD HEAD~1 #比较当前commit和上一次commit的差异
git diff HEAD HEAD^1^1 == git diff HEAD HEAD^^ == git diff HEAD HEAD~2 #比较当前commit和上上一次commit的差异
修改最新一次commit的message
git commit --amend
修改以前的commit的message(仅限于本地未commit状态)
git rebase -i 父commit的ID号
reword
git rebase --skip
合并多个连续的 commit:
git rebase -i 父commit的ID号
squash
git rebase --skips
合并多个不连续的 commit:
git rebase -i 自己的ID号
pick 自己的ID号
squash 想合并的ID号
git rebase --skips
比较工作区和暂存区的区别:
git diff
比较暂存区文件和 HEAD 文件的差异:
git diff --cached
比较暂存区指定文件和工作区该文件的差异:
git diff -- 文件名 文件名 ...
让暂存区恢复成和 HEAD 的一样:
git reset HEAD