我还是git新手.我修改了一些源文件并提交了.然后,我做到了git push.但是,我收到了这个错误.
To /foo/bar/ ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/foo/bar/' To prevent you from
losing history, non-fast-forward updates were rejected Merge the
remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
这似乎拒绝,我也没有git pull之前push.所以,我做到了git pull.好的,其他人有两个修改过的文件.
然后,我 git push成功了.
问题:在这种情况下,我会看到一个更多的日志,如下面的原始提交消息:
commit 59e04ce13b8afa...
Merge: 64240ba 76008a5
Author: Jone Doe <jone@doe.com>
Date: Fri Mar 15 11:08:55 2013 -0700 …Run Code Online (Sandbox Code Playgroud) 尝试使用GitHub Desktop提交我的更改并获取此信息:
错误:无法运行gpg:没有这样的文件或目录
错误:无法运行gpg.
致命:未能写入提交对象(128)
首先,这也不适用于终端,我创建了gpg-key并插入我的GitHub帐户现在它在终端中运行良好但桌面版仍然无效.
在GitHub桌面的官方文档中,我发现了一些符号:
注意:GitHub Desktop不支持GPG签名.
基本上我想在没有推动它们而不切换分支的情况下进行我的更改.这允许我做一些工作,commit当我处于一个良好的停止点,然后继续在同一分支工作.如果我陷入困境,我可以revert,如果我添加新的更改,我可以commit再次.
我意识到我可以在SVN中创建一个功能分支来跟踪这些变化,但同样,我希望在保持同一分支/主干的同时这样做.即使相当于git stash已经足够了,虽然看起来SVN没有那个功能.
在我们的git日志中,我们有时会在Author列中的用户名后面看到一个星号.在其他提交中列出的同一用户没有星号.
星号代表什么?
我正在使用IntelliJ IDEA 15.0.6.
前段时间我将.gitignore文件设置为不跟踪文件夹my_folder:
my_folder/
Run Code Online (Sandbox Code Playgroud)
现在我想只跟踪所述文件夹中的给定文件,名为my_file.md.制作后.gitignore是这样的:
my_folder/
!my_folder/my_file.md
Run Code Online (Sandbox Code Playgroud)
并检查:
git status
Run Code Online (Sandbox Code Playgroud)
该文件不会显示为要提交的更改.
我究竟做错了什么?
加
我尝试将.gitignore文件更改为:
my_folder/*
!my_folder/my_file.md
Run Code Online (Sandbox Code Playgroud)
正如所建议的那样,但是文件仍未显示为提交后的提交更改git status.我需要重置一些东西吗?
加2
尝试使用git add my_folder/my_file.md返回添加文件:
The following paths are ignored by one of your .gitignore files:
my_folder/my_file.md
Use -f if you really want to add them.
fatal: no files added
Run Code Online (Sandbox Code Playgroud)
该命令git check-ignore -v my_folder/my_file.md给出:
.gitignore:1:my_folder/* my_folder/my_file.md
Run Code Online (Sandbox Code Playgroud) 我使用perl脚本修改php git存储库中的所有制表符并将它们全部更改为4个空格.
$ find -iname \*.php -exec perl -pi -e "s/\t/ /g" {} \
Run Code Online (Sandbox Code Playgroud)
我可以提交这个更改git commit,但它会在我提交之后将我标记为内部所有更改行的作者git blame.
有没有办法实现这个大规模的改变,不会让我成为改变行的作者,但保留原作者?这是我们在项目中并不想丢失的很多历史.
我们用4个空格替换制表符的目的不是为了使git责备中的东西看起来不同,而是遵循适当的PEAR编码标准.例如没有标签,使用4个空格进行缩进.
我做了一件非常愚蠢的事.我在代码中输入了一个curseword,然后将代码推送到master分支上.之后我又推了几次,所以人们不会把坏东西拉出来,但我仍然可以在提交历史中找到这个诅咒词.
有没有办法从历史记录中删除提交?编辑:我不想将文件添加到gitignore,因为我们需要该文件.
谢谢
我想在全球范围内应用一致的提交消息规则,以便所有开发人员在提交消息中遇到 jira 问题。
使用企业github。
经发现,可以使用.git/hooks/commit-msg相应更新的文件来实现。
问题:如何应用此更新的 git hooks 以供所有开发人员使用。我没有看到 上出现任何变化git status。不确定是否必须配置不同的方式,因此,commit-msg constrain将适用于所有开发人员而不是本地开发人员。你能指导一下吗?
我刚刚将一个项目从Mercurial迁移到Git.当你添加标签时,Mercurial会添加空提交,所以我最终在Git中提交了我要删除的空提交.
如何从Git中删除空提交(其中没有任何文件的提交)?
谢谢.