我已经设置了一个远程非裸"主"仓库并将其克隆到我的电脑上.我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程仓库.到目前为止,情况还不错.
现在,我不得不改变远程仓库中的东西.然后我在当地的回购中改变了一些东西.我意识到不需要改变远程仓库.所以我尝试git push从我的本地仓库到我的远程仓库,但我收到的错误如下:
为防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关
git push --help详细信息,请参阅"关于快进的注意事项"部分.
我以为那可能是一个
git push --force
Run Code Online (Sandbox Code Playgroud)
将强制我的本地副本将更改推送到远程副本并使其相同.它确实强制更新,但当我回到远程仓库并进行提交时,我注意到文件包含过时的更改(主远程仓库以前有过).
[我]尝试强制,但当回到主服务器保存更改时,我得到过时的暂存.因此,当我提交存储库时不一样.当我再次尝试使用git push时,我得到了同样的错误.
我该如何解决这个问题?
我不小心修改了我以前的提交.提交应该是独立的,以保留我对特定文件所做更改的历史记录.
有没有办法撤消最后一次提交?如果我这样做git reset --hard HEAD^,第一次提交也会撤消.
(我还没有推到任何远程目录)
我想得到一个Git存储库中所有分支的列表,顶部有"最新鲜"的分支,其中"最新鲜"的分支是最近提交的分支(因此,更可能是一个分支)我想要注意).
有没有办法可以使用Git(a)通过最新提交对分支列表进行排序,或者(b)以某种机器可读格式获取分支列表以及每个分支的最后提交日期?
最糟糕的情况是,我总是可以运行git branch以获取所有分支的列表,解析其输出,然后git log -n 1 branchname --format=format:%ci为每个分支获取每个分支的提交日期.但这将在Windows机器上运行,其中启动一个新进程相对昂贵,因此如果有很多分支,每个分支启动Git可执行文件可能会变慢.有没有办法用一个命令完成所有这些?
昨晚(2018年11月)我更新到macOS Mojave,
今天早上我在MacBook pro的Command line中导航到我的工作代码库,
在repo中键入"git status"并收到错误:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Run Code Online (Sandbox Code Playgroud) 曾几何时,我的项目中有一个文件,我现在希望能够获得.
问题是:我不知道何时删除它以及它在哪条路径上.
如何存在此文件的提交?
使用时git log,如何按用户进行过滤,以便仅查看该用户的提交?
情况:我有一个Git存储库,其中包含已存在于索引中的文件.我对几个文件进行了更改,打开Git并使用"git add"将这些文件添加到我的临时区域.
问题:如何从暂存区域中删除其中一个文件但不将其从索引中删除或撤消对文件本身的更改?
我有这样的目录结构:
.git/
.gitignore
main/
...
tools/
...
...
Run Code Online (Sandbox Code Playgroud)
在主要工具和工具以及任何其他目录中,可以有一个"bin"目录,我想忽略它(我也想忽略它下面的所有内容).我在.gitignore中尝试了这些模式中的每一种,但它们都不起作用:
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
Run Code Online (Sandbox Code Playgroud)
谁能帮我吗?如果我这样做,第一个模式(我认为应该工作的模式)工作得很好:
/main/**/bin/**/*
Run Code Online (Sandbox Code Playgroud)
但我不希望每个顶级目录都有一个条目,我不想每次添加新目录时都要修改.gitignore.
这是在Windows上使用最新的msysgit.
编辑:还有一件事,有文件和目录在他们的名字中有子字符串'bin',我不希望那些被忽略:)
什么是最简单的撤消方法
git reset HEAD~
Run Code Online (Sandbox Code Playgroud)
命令?目前,我能想到的唯一方法是从远程仓库进行"git clone http:// ...".
如何.DS_Store从Git存储库中删除那些烦人的Mac OS X 文件?