为什么git命令要切换名为git checkout?的分支?
它真的有意义吗?
我会改名git switch.此外,git checkout还有其他含义:例如还原文件(如svn revert)
我想知道HEAD裸存储库的目的是什么?它是否仅在克隆存储库时才使用,以了解在克隆存储库中要检出的分支?
请注意,这个问题不是关于what is HEAD,但考虑到它的功能,我想知道为什么在bare存储库中需要它.
我正在尝试使用git子模块将10多个存储库聚合到一个结构中以便于开发.
它应该克隆模块并签出分支.而是以分离头模式检出模块.
git clone git@github.com:org/global-repository.git
git submodule update —init
cd config-framework
git status
$git status
#HEAD detached at b932ab5
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
gitmodules文件似乎没问题
$cat .gitmodules
[submodule "config-framework"]
path = config-framework
url = git@github.com:org/config-framework.git
branch = MY_BRANCH
Run Code Online (Sandbox Code Playgroud)
我们希望默认情况下检出MY_BRANCH分支,而不是分离头.我们如何实现这一目标?
当我检查以前提交的git存储库时,'git log'不再显示在当前检出的提交之后提交的提交.
所以,问题是:如何在当前签出的提交之后获取提交日志?
我正在尝试为jenkins groovy脚本获取我的分支名称.我无法获取当前的分支名称.我尝试以下方法:
stage('Check out code')
checkout scm
echo "My branch is: ${env.BRANCH_NAME}"
Run Code Online (Sandbox Code Playgroud)
这是输出 - 它总是返回null.
Checking out Revision 33b531b2f1caaf8b64d968e437306f39d2dba1da (origin/pipeline)
> git.exe config core.sparsecheckout # timeout=10
> git.exe checkout -f 33b531b2f1caaf8b64d968e437306f39d2dba1da
[Pipeline] echo
My branch is: null
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我正在使用Git与其他用户合作,但今天我无法使用" git pull" 获取某些文件的最新更改,而我无法看到" git log"中的更改.
可能是什么问题?
它说,在git-book中
"起源"并不特别
就像分支名称"master"在Git中没有任何特殊含义一样,"origin"也没有.虽然"master"是运行git init时启动分支的默认名称,这是它被广泛使用的唯一原因,但 "origin"是运行git clone时远程的默认名称.如果你改为运行git clone -o booyah,那么你将拥有booyah/master作为你的默认远程分支.
也就是说,我们可以用默认的分支名称作为主或主要分支或类似的东西.我没有看到任何选项man git-init会repo使用不同的默认分支名称初始化我.
Github显示了如何在她的设置页面中设置默认分支名称.但我不是在谈论如何在任何特定的git托管网站中设置它.我只是严格询问git,而不是任何特定的git托管网站.
有没有办法做到这一点 ?
命令1做什么命令2没有?
1. git push <projectpath> HEAD:refs/heads/<branch>
2. git push <projectpath> <branch>
Run Code Online (Sandbox Code Playgroud)
"HEAD:refs/heads /"是什么意思?
我正在使用EGit和Eclipse Juno.我在一个本地存储库工作,世界很好.即使添加GitHub存储库似乎也没问题.我将它添加到"Remotes"下的本地存储库中,因此我可以轻松地将提交推送到github.但过了一段时间,我注意到即使我提交了更改,也没有新的文件添加到存储库中.他们只是没有版本控制.他们没有符号,这应该意味着他们被忽略了.这是我的.ignore
.gwt
gwt-unitC
ache
Versandanzeige_Web_proto.war
Versandanzeige_Web.war
war/ajax
war/WEB-INF/classes
war/WEB-INF/deploy
www-test
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决?还需要其他信息吗?
更新:错误日志中没有错误.
我的最新分支旁边有(HEAD).
更多细节:
从T0开始,我得到了我的后备箱T. 在T1,有一个分支A,它有T1的变化.在T2,有另一个分支,B.它没有T2的变化.奇怪的是:它没有在历史记录视图中指出.主分支也丢失了.我仍然可以切换到它们.当我这样做时git reflog,T2之前或之后都没有条目,之后就是一切.
我删除了分支而没有提交:

新文件仍显示为已忽略:

命令行输出:
$ git branch -a:
* master
maven
$ git status
# On branch master nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
关于独立的HEAD propel:我没有做文章中描述的内容,检查旧状态并从中开始工作.我看不到任何撤消的提交.
抱歉我的英语不好,我暂时没有使用它.如果我写了一些难以理解的内容,请要求澄清.
更新:我可以在另一个文件夹中添加一个文件(/Versandanzeige_Web/war/WEB-INF/lib/gwt-servlet.jar).
我正在尝试使用该命令将我的提交推送到Bitbucket
git push origin master
Run Code Online (Sandbox Code Playgroud)
什么都没发生.我用命令提示符表示,没有错误消息.当我在线浏览源代码时,我的代码尚未上传.
git remote show
Run Code Online (Sandbox Code Playgroud)
返回"原点"
git push --verbose
Run Code Online (Sandbox Code Playgroud)
不显示任何其他信息.
我已经多次使用这种方法,但它突然停止工作.
我2.6.1.windows.1在Windows 10上使用
更新:Git本身似乎存在问题.我不能在GitHub或Bitbucket上推送,拉动或克隆任何存储库.似乎连接到远程的任何git命令都不起作用.
我尝试卸载并重新安装git.我尝试安装2.6.1和2.7.0(2.7甚至没有在Windows 10 Build 14251上正确安装).我可以在没有其他计算机问题的情况下与回购交互.
git ×10
bitbucket ×1
eclipse ×1
egit ×1
git-branch ×1
git-checkout ×1
git-pull ×1
git-remote ×1
github ×1
groovy ×1
jenkins ×1
push ×1