小编Win*_*Win的帖子

Java的最终版本与C++的const

Java进行C++程序员教程说,(大亮点是我自己的):

关键字final 大致 相当于C++中的const

在这种情况下,"大致"意味着什么?它们不完全一样吗?

有什么区别,如果有的话?

c++ java final const

144
推荐指数
6
解决办法
6万
查看次数

添加后,忽略Git仓库中的目录

我已经学会了如何排除git的整个目录(添加一行bin/.gitignore).我已经学会了如何在"事后"忽略文件(即在它们被添加到git之后):

git rm --cached <filename>
Run Code Online (Sandbox Code Playgroud)

将它添加到Git仓库,如何忽略整个目录(例如bin/)?

我试过,git rm --cached bin/但我收到的只是错误:

致命:pathspec'bin /'与任何文件都不匹配

当我尝试(在根目录,存在.git的地方)时git rm --cached MyProj/bin/,错误是不同的:

致命的:没有-r,不能递归删除'MyProj/bin /'

这意味着什么,我现在需要提交和/或分支?

git gitignore

58
推荐指数
2
解决办法
5万
查看次数

为什么分支名称不能包含'space'char?

我试过了:

git branch "MyProj/bin/ ignored"
Run Code Online (Sandbox Code Playgroud)

并收到:

fatal: 'MyProj/bin/ ignored' is not a valid branch name.
Run Code Online (Sandbox Code Playgroud)

混帐分支男子网页指向的git检查-REF-格式手册页,以获得实际的规则,一个有效的分支名称.

果然,上述致命错误的原因似乎是包含空格字符.

知道为什么,在这个时代,空间仍然被排除在分支名称之外(例如,我会在古老的CVS中预期它,但是Git?)

什么可能是有效的技术原因?

git git-branch

58
推荐指数
3
解决办法
4万
查看次数

Git将Emacs减速到死亡 - 如何解决这个问题?

打开文件(通过键入Ctrl-x f,AKA Find File)或通过fDired模式下键入该文件),在具有.git子目录的工作目录中非常缓慢.

即使是最简单的文件(50行(主要是注释)也可能需要8秒才能打开.

同一个文件,在不受Git管理的不同目录中,立即打开.

为什么会发生这种情况?如何不禁用vc-mode的情况下解决此问题?(因为我使用Emacs的主要原因之一是它M-x ediff-revision)

更新1:感谢@ sanityinc的回答,我运行了ELP Profiling,这是我收到的(对于一个非常小的文件,69行,其中59行是简单注释):

Function Name                       Call Count   Elapsed Time  Average Time
-------------                       ----------   ------------  ------------
vc-call-backend                      11          23.023        2.093
vc-find-file-hook                    1           8.757         8.757
vc-mode-line                         1           7.812         7.812
vc-default-mode-line-string          1           7.345         7.345
vc-state-refresh                     1           6.921         6.921
vc-state                             1           6.921         6.921
vc-default-state-heuristic           1           6.921         6.921
vc-registered                        1           0.945         0.945
vc-backend                           1           0.945         0.945
vc-git-registered                    1           0.912 …
Run Code Online (Sandbox Code Playgroud)

git emacs cygwin

34
推荐指数
1
解决办法
4949
查看次数

本地存储库位于何处?

来自维基百科:

在此输入图像描述

在哪里说"本地存储库"位于物理上(在文件系统中)?

git

34
推荐指数
2
解决办法
5万
查看次数

如何将MULTIPLE文件名传递给Context Menu Shell命令?

将单个文件名传递给上下文菜单shell命令很简单:

[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"
Run Code Online (Sandbox Code Playgroud)

但是,如果我选择多个文件,program.exe则会为每个这样选择的文件调用.

我想要做的只是调用program.exe一次,将当前选中的所有文件名传递给它.

这该怎么做?

windows registry shell contextmenu

30
推荐指数
2
解决办法
1万
查看次数

是否有一个简单的命令将分支转换为标签?

我即将完成将"哑快照"转换为git的繁琐过程.这个过程一直很顺利(感谢这个重命名过程),但现在我意识到我创建的一些分支不值得branch,而是一个tag.

由于一切都仍然是本地的(从未被推送到存储库),我发现这个问题(和相关的答案)比我更喜欢有点麻烦,所以我想知道我是否可以通过一些简单的"转换为分支"来获取快捷方式-tag"命令?

是否有这么简单的命令将分支转换为标签?

(我知道我可以保留它原样,但我真的很喜欢gitk突出标签的方式,帮助我轻松识别它们).

更新:感谢@ Andy在下面的回答,我设法提出了一个shell脚本,可以方便,轻松地完成所有操作.为了所有人的利益,我正在分享这个脚本,特别感谢这个伟大的社区,他为我提供了CVS to git的可能性:

#!/bin/sh

BRANCHNAME=$1
TAGNAME=$2

echo "Request to convert the branch ${BRANCHNAME} to a tag with the same name accepted."
echo "Processing..."
echo " "

git show-ref --verify --quiet refs/heads/${BRANCHNAME}
# $? == 0 means local branch with <branch-name> exists. 

if [ $? == 0 ]; then
   git checkout ${BRANCHNAME}
   git tag ${BRANCHNAME}
   git checkout master
   git branch ${BRANCHNAME} -d
   echo " " …
Run Code Online (Sandbox Code Playgroud)

git git-tag git-branch

27
推荐指数
2
解决办法
5807
查看次数

如何告诉Git它是同一个目录,只是一个不同的名称

在学习了Git的几个障碍之后,我遇到了一个新的挑战:重命名目录(在本地,在工作目录中).

当我键入时git status,它会将旧目录名中的所有文件(在新目录中存在与新目录中完全相同的文件名)列为已删除,新目录名称为"未跟踪".

有没有办法告诉Git"它实际上是同一个目录,只是一个不同的名字"?

这样所有文件都只会被git status修改列出 ?

举例来说,这是git status我重命名整个目录时收到的输出:

git status
# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    old-dir-name/file1
#   deleted:    old-dir-name/file2
#   deleted:    old-dir-name/file3
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# …
Run Code Online (Sandbox Code Playgroud)

git

25
推荐指数
3
解决办法
1万
查看次数

CYGWIN = nodosfilewarning没有帮助cygwin警告

当我尝试ediff-revision在Emacs 23.2.1下使用CVS管理的文件时,我在*ediff-errors*框架中收到以下错误,而不是直接开始ediff结果:

cygwin warning:
  MS-DOS style path detected: c:/Users/BILL/AppData/Local/Temp/misc.cpp.~1.10~
  Preferred POSIX equivalent is: /cygdrive/c/Users/BILL/AppData/Local/Temp/misc.cpp.~1.10~
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Run Code Online (Sandbox Code Playgroud)

我的问题是我已经设置了CYGWIN环境变量选项"nodosfilewarning",所以我不知道为什么我收到这个错误.

实际上,我可以在同一个Emacs实例下的劣质shell中验证这一点:

> set | grep -i nodos
CYGWIN=nodosfilewarning
Run Code Online (Sandbox Code Playgroud)

我在Windows 7下运行Cygwin 1.7.9-1,以防这可能是相关的(在从Cygwin 1.5升级到1.7之前我从未遇到过这个问题).

知道如何摆脱这个错误吗?

PS后续调用ediff-revision成功而不触发此警告.

cygwin emacs23

21
推荐指数
2
解决办法
2万
查看次数

如何更改git branch输出顺序

当我输入时git branch,我会收到一个分支列表,这些分支看起来按字母顺序排序,而不是按创建时间排序.

有没有办法git branch按日期排序?

git git-branch

14
推荐指数
3
解决办法
2634
查看次数

标签 统计

git ×7

git-branch ×3

cygwin ×2

c++ ×1

const ×1

contextmenu ×1

emacs ×1

emacs23 ×1

final ×1

git-tag ×1

gitignore ×1

java ×1

registry ×1

shell ×1

windows ×1