checkout命令(checkoutput)

http://www.itjxue.com  2023-02-23 06:21  来源:未知  点击次数: 

svn的checkout命令?

1、进入想要拉取的本地文件夹目录,点击鼠标右键,选择“SVN Checkout”。

2、在弹出的对话框内,输入远端SVN的地址,以及本地要保存的目录。

3、如果是第一次使用,可能会提示如下信息,告诉你的证书保存的时效性,选择上一项,永久保存。

4、输入SVN用户名和密码,如果需要永久保存认证信息,勾选下方的“save authentication”。

5、此时,如果各项信息无误,SVN就会自动从远程服务端下载项目代码。

Git语法之Checkout使用

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md )来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

可以使用 **git reset --hard HEAD^ 来回退到上一次commit的状态。

此命令可以用来回退到任意版本: git reset --hard commitid **

你可以使用 **git log **命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid:

图省略...

git checkout 有什么用

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。

(一)基础——千里之行,始于切糕(checkout)

先熟悉下常用操作,创建分支和切换分支,也可以称为检出分支。

首先我们新建一个仓库gitTest,然后新建文件a,为什么要用a命名呢,这里是故意为之,后面为大家揭晓分支。呵呵。或许下面的介绍会有些枯燥乏味,因为您已经对这些命令烂熟于胸,而且运用得相当熟练,那么您可以直接跳过这一步。

在master分支上,做一次提交c1,然后现在新建一个分支a,并切换到a分支。

这个操作主要会用到两个命令:

创建新分支:git branch branchName

切换到新分支:git checkout branchName

然后 ,上面两个命令也可以合成为一个命令:

git checkout -b branchName

(二)真相——HEAD是checkout的灵魂

其实,我们在切换分支,和新建分支的时候,有没有想过,这些操作操作背后的工作原理是怎样的呢?最大的功臣就是.git目录下的HEAD引用,她宛如一个芭蕾舞者,从一个分支飘逸的跳到另一个分支,虽无声无息,却精准无比。

在我们身处master分支的时候,您一定很好奇,当前的HEAD的内容是什么?不妨来看看吧。

我们看到c1的提交hash值和HEAD对应分支master的当前hash值是一样的。也就是说,HEAD指向的是当前分支名master,而master又对应了当前的最新的一次提交ID.

好,那么我们再做一次提交,看看master对应的hash值有无变化。

从上图,我们可以不难看出,HEAD对应的ref没有变化,还是master,但是master对应的commit ID却变成了c2对应的commit ID,即更新为最后一次提交的ID咯。

现在,提交一次的原理,我们已然了解,那么切换分支的时候呢??

现在我们身处master分支,然后我们切换到a分支,看看会发生什么样的情况吧。

从上图分析,在master分支上的时候,HEAD指向的是master,对应的是c2的commit ID。而切换到a分支的时候,HEAD也相应的指向了a,同时a对应的是a分支上的最新commit ID。因此,我们可以得出结论,在切换分支的时候,HEAD也会相应的指向对应的分支引用。

但是,使用checkout命令的时候,并不是每次都会改变HEAD指针的指向哦。在什么情况下HEAD一直坚定不移的拥护者他的女神呢?可谓衣带渐宽终不悔,长使英雄泪满襟啊!让我们接着往下看。

【Git】checkout 用法总结

切克闹(checkout)作为git中最为常用的命令之一,对它使用的熟练程度直接决定了你对git理解和掌握的熟练程度,因此我们有理由为这个命令好好的做一下总结。

checkout最常用的用法莫过于对于工作分支的切换了:

该命令会将当前工作分支切换到branchName。另外,可以通过下面的命令在新分支创建的同时切换分支:

该命令相当于下面这两条命令的执行结果:

该命令的完全体为:

该命令的一个应用场景为:当我们刚从git上clone一个项目后,我们可以查看该项目的分支情况

可以看到,克隆完后,只会默认创建一个master本地分支,其他都是远程分支,此时如果我们想切换到newBranch的远程分支该怎么操作呢?方法有很多种,我们简单介绍两种:

方法一:使用git checkout -b

方法二:使用git branch branchname [start-point]

方法一其实是方法二的简化版

要想更深入的了解checkout,我们需要了解checkout的作用机制。该命令的主要关联目标其实是.git 文件夹下的HEAD文件,我们可以查看工程下面的.git文件夹:

该文件夹下HEAD文件记录了当前HEAD的信息,继续查看HEAD文件:

可以看到当前HEAD文件指向了refs/heads路径下的master文件,该文件记录了master分支最近的一次commit id,说明当前HEAD指向了master分支。如果我们将当前分支切换到newBranch 分支,我们再看HEAD文件:

可以看到HEAD文件内容指向了newBranch分支

用法1:

该命令主要用于检出某一个指定文件。

如果不填写commit id,则默认会从暂存区检出该文件,如果暂存区为空,则该文件会回滚到最近一次的提交状态。

例如:

当暂存区为空,如果我们想要放弃对某一个文件的修改,可以用这个命令进行撤销:

如果填写commit id(既可以是commit hash也可以是分支名称还可以说tag,其本质上都是commit hash),则会从指定commit hash中检出该文件。用于恢复某一个文件到某一个提交状态。

用法2:

该命令是文章开头部分所说的checkout常见用法的扩展,我们可以指定某一个分支或者某一次提交来创建新的分支,并且切换到该分支下,该命令相当于下面两条命令的执行结果:

用法3:

该命令主要加了一个可选参数B,如果已经存在了同名的分支,使用 git checkout -b new_branch会提示错误,加入-B可选参数后会强制创建新分支,并且会覆盖原来存在的同名分支。

用法4:

假如你的某个分支上,积累了无数次的提交,你也懒得去打理,打印出的log也让你无力吐槽,那么这个命令将是你的神器,它会基于当前所在分支新建一个赤裸裸的分支,没有任何的提交历史,但是当前分支的内容一一俱全。新建的分支,严格意义上说,还不是一个分支,因为HEAD指向的引用中没有commit值,只有在进行一次提交后,它才算得上真正的分支。

用法5:

这个命令适用于在切换分支的时候,将当前分支修改的内容一起打包带走,同步到切换的分支下。

有两个需要注意的问题。

第一,如果当前分支和切换分支间的内容不同的话,容易造成冲突。

第二,切换到新分支后,当前分支修改过的内容就丢失了。

所以这个命令,慎用

用法6:

这个命令可以用来打补丁。这个命令主要用来比较两个分支间的差异内容,并提供交互式的界面来选择进一步的操作。这个命令不仅可以比较两个分支间的差异,还可以比较单个文件的差异哦!

注:文中如有任何错误,请各位批评指正!

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章