git 常用基础命令记录

输入 --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文件夹下,系统级别的配置范围最大,项目级别最小,这里不做介绍。

a:3:{s:3:\"pic\";s:43:\"portal/201804/09/145303hmyn4s06nbfbgfs4.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

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 commitgit 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 查看仓库的操作历史命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值