如果我这样做git checkout HEAD^
,我得到这个:
$ git checkout HEAD^
Note: checking out 'HEAD^'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b …
Run Code Online (Sandbox Code Playgroud) 我想要一个命令,它为我所在的分支发出被跟踪分支的名称.就像是:
$ git checkout --track -b topic origin/master
Branch topic set up to track remote branch master from origin.
Switched to a new branch 'topic'
$ git unknown-command
origin/master
Run Code Online (Sandbox Code Playgroud)
有这样的命令吗?
git rebase
在将某个文件添加到存储库,然后从存储库中删除,然后添加到工作目录(但不是存储库)的某些情况下,似乎无法正常工作.
这是我的问题的更具体的描述:
如果创建分支并从某个主干切换到
并在分支中添加并提交文件X,
然后X被删除并在分支中提交,
并且X再次在工作目录中创建,但未添加或提交,
并且树干分支前进,
然后
使用高级主干作为基础执行的rebase将失败,因为它将拒绝覆盖X,
即使工作目录X被移除或移开,也无法继续使用rebase.
这是一个在命令行上重现我的问题的脚本:
git init
echo foo > foo.txt
git add .
git commit -m 'foo'
echo foo >> foo.txt
git add .
git commit -m 'foo foo'
git checkout -b topic HEAD^
git log
echo bar > bar.txt
echo baz > baz.txt
git add .
git commit -m 'bar baz'
git rm bar.txt
git commit -m '-bar'
echo bar > bar.txt
git rebase master
# the following output is …
Run Code Online (Sandbox Code Playgroud) 我有一个git工作目录,并已添加到.git/objects/info/alternates
这个工作目录不需要存储已经在我的机器上的另一个工作目录中的重复数据.(这是做什么的git clone --reference=DIRECTORY
).但是,已存储在工作目录中的重复对象不会从我的.git/
目录中删除.这意味着.git/
目录保持很大.
如何摆脱重复的对象,使.git/
目录更小?
我在本地计算机上创建了一个HTML文件,我使用一个file:///
地址打开.它包括用于打开新浏览器窗口的JavaScript window.open()
.
当我在Firefox 5中查看此页面时,弹出窗口阻止程序会阻止新窗口.我无法覆盖这种行为; 单击弹出窗口阻止程序"首选项"会显示一个菜单项"允许弹出窗口",这不起作用.
如何file:///
在Firefox 5中允许弹出窗口中的地址?
我有一个简单的备份系统,其中使用--bare
(可能已经--mirror
)git fetch
每小时创建一个git clone .我的想法是,如果我的工作副本发生了某些事情,我会在克隆中备份我的工作.
这个系统工作得很好,但是我运行时遇到错误git fetch
:
$ git fetch
remote: Total 0 (delta 0), reused 0 (delta 0)
error: unable to find 2a8c978c41c362c3f0c42775c9124780a0e71e08
fatal: object 2a8c978c41c362c3f0c42775c9124780a0e71e08 not found
Run Code Online (Sandbox Code Playgroud)
当我查看对象的原始存储库时,它是一个存储:
$ git show 2a8c978c41
commit 2a8c978c41c362c3f0c42775c9124780a0e71e08
Merge: 808f6e4 ddc28da
Author: Russell Silva <russell.silva@blahblah.com>
Date: Wed Feb 29 10:19:26 2012
WIP on experimental: 808f6e4 blah blah blah
Run Code Online (Sandbox Code Playgroud)
看起来fetch大多是成功的; git log <branch>
显示最新的分支机构.但错误令人讨厌.我怎么摆脱他们?如何防止它们再次发生?
请注意,这个问题是来自不同的这个地方居然有人想取一个藏匿处.我不在乎我的git fetch
命令是否取得了藏匿处; 如果他们不这样做就没问题.
编辑:git fetch --verbose
请求的完整输出: …
如果我尝试创建一个值为select的返回多行的列,则会出现错误.
=> select (select 1 union select 2);
ERROR: more than one row returned by a subquery used as an expression
Run Code Online (Sandbox Code Playgroud)
但是如果我创建一个执行相同操作的函数,我会得到我想要的行为.
=> create or replace function onetwo() returns setof integer as $$
$> select 1 union select 2
$> $$ language 'sql' strict immutable;
CREATE FUNCTION
=> select onetwo();
onetwo
--------
1
2
Run Code Online (Sandbox Code Playgroud)
为什么不同?
在我的工作场所,我们有一个代表已发布代码的"主"主干分支.要进行更改,我会查看工作副本,创建主题分支,提交主题分支,将主题分支合并到主分支,然后推送.
对于小的更改,我可能会直接提交master,然后推送.
我的问题是,当我使用"git log"时,我不关心我的本地工作副本中的主题分支.我只想在远程共享git服务器上看到对master分支的更改.更重要的是,如果我使用--stat或-p或他们的一个朋友,我希望看到与合并提交相关联的文件和更改为master,而不是与原始分支提交相关联(就像我说的那样,我不喜欢根本不想看到.
我该怎么做呢?
我希望能够生成所有I18n键的完整列表以及包含完整键的语言环境的值。换句话说,如果我有这些文件:
config/locales/en.yml
en:
greeting:
polite: "Good evening"
informal: "What's up?"
Run Code Online (Sandbox Code Playgroud)
config/locales/second.en.yml
en:
farewell:
polite: "Goodbye"
informal: "Later"
Run Code Online (Sandbox Code Playgroud)
我想要以下输出:
greeting.polite: "Good evening"
greeting.informal: "What's up?"
farewell.polite: "Goodbye"
farewell.informal: "Later"
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
git ×6
branch ×2
diskspace ×1
firefox ×1
function ×1
git-checkout ×1
git-rebase ×1
git-stash ×1
javascript ×1
logging ×1
popup ×1
postgresql ×1
reference ×1
sql ×1
subquery ×1
yaml ×1