git常用整理

git config --global user.name ''
git config --global user.email ''
git config --system alias.st status   //重命名
git config --system color.ui true     //--system 对系统设置进行修改,--global 对用户设置
git init 现有项目初始化 (注意写一些.gitignore规则) 初始化完成后 git add . 将项目中的文件加入到git追踪
git config -e --global  修改配置文件
git log --graph --decorate --oneline  --all
git reflog -2 head 查看引用日志情况
git clone 完整项目克隆
git status [--short/-s]  查看状态
git diff 查看当前工作区与缓存stage区的差异,即下次add的区别   --cached 则查看缓存区与head的变化,即下次提交的内容变化
git rm  如果直接使用rm,会提示 unstage

git mv


git reset:

Git reset 是Git最常用的命令之一,也是最危险最容易误用的命令。

用法一:git reset [-q] [<commit>] [--] <paths>...

用法二:git reset [--soft --mixed | --hard | --merge | --keep] [-q] [<commit>]

以上两种用法,<commit>都是可选项,可以使用下引用或提交ID,如果省略则相当于使用了HEAD的指向作为提交ID。

上面的两种用法的区别在于,第一种在命令中包含路径<paths>。为了避免路径和引用(或者提交ID)同名而发生冲突,可以在<paths>前用两个连续的短线(减号)作为做分隔。

第一种用法(包含了路径<paths>的用法)不会重置引用,更不会改变工作区,而是用指定提交状态(<commit>)下的文件(<paths>)替换掉暂存区中的文件。例如命令git reset HEAD <paths>相当于取消之前执行的git add <paths>命令时改变的暂存区。

第二种用法(不使用路径<paths>的用法)则会重置引用。根据不同的选项,可以对暂存区或工作区进行重置。参照下面的版本库模型图,来看一看不同的参数对第二种重置语法的影响。

clip_image002


git checkout:

git checkout是git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区。检出命令的用法如下:

用法一:git checkout [-q] [<commit>] [--] <paths>...

用法二:git checkout [<branch>]

用法三:git checkout [-m] [[-b]--orphan] <new_branch>] [<start_point>]

上面列出的第一种用法和第二种用法的区别在于,第一种用法在命令中包含路径<paths>。为了避免路径和引用(或者提交ID)同名而发生冲突,可以在<paths>前用两个连续的短线(短号)作为分隔。

第一种用法的<commit>是可选项,如果省略则相当于从暂存区(index)进行检出。这和上一章的重置命令大不相同:重置的默认值是HEAD,而检出的默认值是暂存区。因此重置一般用于重置暂存区(除非使用--hard参数,否则不会重置工作区),而检出命令主要是覆盖工作区(如果<commit>不省略,也会替换暂存区中相应的文件)。

第一种用法(包含了路径<paths>的用法)不会改变HEAD头指针,主要是用于指定版本的文件覆盖工作区中对应的文件。如果省略<commit>,则会用暂存区的文件覆盖工作区的文件,否则用指定提交中的文件覆盖暂存区中和工作区中对应的文件。

第二种用法(不使用路径<paths>的用法)则会改变HEAD头指针。之所以后面的参数会写作<branch>,是因为只有HEAD切换到一个分支才可以对提交进行跟踪,否则仍然会进入“分离头指针”的状态。在“分离头指针”状态下的提交不能被引用关联到,从而可能丢失。所以用法二最主要的作用就是切换到分支。如果省略<branch>则相当于对工作区进行状态检查。

第三种用法主要是创建和切换到新的分支(<new_branch>),新的分支从<start_point>指定的提交开始创建。新分支和我们熟悉的master分支没有什么实质的不同,都是在refs/heads命名空间下的引用。

下图所示的版本库模型图描述了git checkout实际完成的操作。

clip_image002


git stash:用于保存和恢复工作进度。

 git stash

保存当前的工作进度。会分别对暂存区和工作区的状态进行保存。

git stash list

显示进度列表。此命令显然暗示了git stash 可以多次保存工作进度,并用在恢复时候    选择。

git stash pop [--index] [<stash>]

如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作       进度列表中清除。如果提供<stash>参数(来自git stash list显示的列表),则从该<stash>中恢复。恢复完毕 也将从进度列表中删除<stash>。选项--index除了恢复工作区的文件外,还尝试恢复暂存区。这也就是为什么在本章一   开始恢复进度的时候显示的状态和保存进度前的略有不同。

git stash [save [--patch] [-k|--[no]keep-index] [-q|--quiet] [<message>]]

这条命令实际上是第一条git stash命令的完整版。即如果需要在保存工作进度的时候使 用指定的说明,必须使用如下格式:

git stash save “message...”

使用参数--patch会显示工作区和HEAD的差异,通过对差异文件的编辑决定在进度中   最终要保存的工作区的内容,通过编辑差异文件可以在进度中排除无关内容。使用-k或者--keep-index参数,在保存进度后不会将暂存区重置。默认会将暂存区和工  作区强制重置。

git stash apply [--index] [<stash>]

除了不删除恢复的进度之外,其余和git stash pop 命令一样。

git stash drop [<stash>]

删除一个存储的进度。默认删除最新的进度。

git stash clear

删除所有存储的进度。

git stash branch <branchname> <stash>

基于进度创建分支。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值