输入 --help可查看相关命令说明文档,这里只记载一些常用的以及可能用到的
1. git config
获取以及设置仓库或全局配置选项,参数--global 表示配置全局
1.1 设置用户名以及邮箱,通常设为全局
git config --global user.name mika
git config --global user.email mika@example.com
1.2 设置git自动保存用户名及密码
git config --global credential.helper store
全局配置文件位于用户根目录下(用户级别的配置),如C:\Users\Administrator\.gitConfig,修改后内容如下
项目级别的配置,一般位于git仓库中的.git文件夹下,系统级别的配置范围最大,项目级别最小,这里不做介绍。
1.3 查看所有配置
git gonfig --list
2. git add
2.1 将文件添加至版本控制,可一次性添加多个文件,以空格分隔
git add fileName1 fileName2
2.2 将指定目录下的所有文件提交到暂存区
git add dir
2.3 将所有修改提交到暂存区
git add --all 或者 git add .
推荐使用前者,两者之间存在细微差异
git add all 无论在哪个目录下执行该指令都能提交所有修改,git add . 可以理解为3.2语法,只提交当前目录下的所有修改
参考文章http://www.softwhy.com/article-8489-1.html
另:git add 实际上会先生成对应git对象放入git仓库中,然后再被放入暂存区(git 对象相关知识)
3. git rm 删除文件
3.1 linux命令删除
rm readme.txt
git add readme.txt
git commit -m "delete readme"
3.2 gm rm 命令删除
git rm readme.txt
git commit -m "delete readme"
上述两种做法,都会将工作区文件也删除,下面这种只删除暂存区
3.3 --cache参数
git
rm
readme.txt --cached
从暂存区删除后,文件处于未跟踪状态,未跟踪状态只是没有存在于暂存区,历史提交记录中的记录依然存在
详情参考文章 http://www.softwhy.com/article-8570-1.html
4. git commit 提交
4.1 -m 表示输入本次提交信息
4.2 -a 表示跳过add命令进行提交,git会自动将所有已跟踪过的文件暂存起来一并提交
4.3 --amend 修改最后一次commit提交
修改上次提交的注释
git commit --amend -m "newMsg"
对上次提交添加新改动
git add new.txt , git commit --amend --no-edit (--no-edit表示不修改上次的提交信息,如需修改,使用-m)
提交不会清空暂存区
5. git diff
比较某个文件(当前工作区文件与git暂存区中的进行对比)
只有已跟踪的文件才可以比较,假如git rm fileName --cache 清除暂存区文件信息,那么文件状态变为未跟踪,则无法比较
6. git stasus
查看当前工作区状态(详情参考另一文章)
7. git stash
改动贮存 (详情参考另一文章)
8. git reset
1. 回退版本
HEAD代表当前版本,有一个^代表上一个版本,以此类推,HEAD-20表示前20个版本
git reset --hard HEAD^
回退到指定版本,其中d7b5是想回退的指定版本号的前几位
git reset --hard d7b5
reset 只是改变了HEAD所指向的提交为另一提交,并未进行改动,所有提交依然存在
2. 参数说明
--hard:暂存区和工作区的内容都会被新指向的commit提交内容所替换,暂存区内没有commit的修改也会被全部擦掉
注意:git reset --hard只影响被跟踪的文件,如果工作区有未跟踪的新增文件,并不会被影响
--soft:暂存区和工作区的内容都保持原样,不会被替换,但是会将重置 HEAD 所带来的新的差异放进暂存区
--mixed:默认值,暂存区中的内容会被新指向的commit提交内容所替换,工作区内容不变。
详细用法参考文章 https://www.jianshu.com/p/c2ec5f06cf1a
9. git checkout 检出或撤销修改
9.1 撤销修改
git checkout -- fileName
eg:命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
如果要还原所有文件 git checkout .
9.2 切换分支
git checkout branchName 切换到指定分支(前提,分支存在)
git checkout -b branchName 切换到指定分支,若该分支不存在,新建此分支并切换到此分支
10. git blame
查看文件由哪次提交修改
git blame fileName 可以在文件的每一行都标注了提交信息,这样就很容易找出责任人。
git blame -L 1,10 fileName 观察文件的指定范围内容的提交信息(第一行到第十行)
11. git clean
清除未跟踪文件,与git reset --hard命令配合使用,可以使工作区彻底恢复到最近一次提交之时
参数说明
git clean -n <path> 仅列出指定目录下将要被删除的文件,但是并不会真正将文件删除。
git clean -f <path> 删除指定目录下未被跟踪的文件,但是不会删除.gitignore文件指定的文件,无论是否被跟踪。
git clean -df <path> 删除指定目录下或者其后代目录下未跟踪的文件。
未完待续...............
其他:
git init 在当前目录下创建git仓库
git clone 从远程主机克隆一个版本库
git branch 新建分支(并不会自动切到新分支)
git version 查看git版本信息
git log 查看提交历史,--oneline 简化历史信息,只展示commitId 和 commit message
git reflog 查看仓库的操作历史命令