我遇到了多个关于我的包文件的错误,这些错误似乎很阴险,这是一个非常可怕的交易,因为这是一个实时站点,我不确定如何处理它,也许有人可以告诉我,这是怎么回事。
好像我有一个丢失的对象,而且我的包文件的计数也不好?
remote: Counting objects: 25733, done.
remote: Compressing objects: 100% (12458/12458), done.
remote: Total 19185 (delta 6914), reused 17995 (delta 6535)
Receiving objects: 100% (19185/19185), 1.69 GiB | 465 KiB/s, done.
Resolving deltas: 100% (6914/6914), completed with 1058 local objects.
error: packfile .git/objects/pack/pack-1f0643b00b9c201338b7f1365ef188ef682a6a9e.pack claims to have 19185 objects while index indicates 20243 objects
error: packfile .git/objects/pack/pack-1f0643b00b9c201338b7f1365ef188ef682a6a9e.pack cannot be accessed
error: packfile .git/objects/pack/pack-1f0643b00b9c201338b7f1365ef188ef682a6a9e.pack claims to have 19185 objects while index indicates 20243 objects
error: packfile .git/objects/pack/pack-1f0643b00b9c201338b7f1365ef188ef682a6a9e.pack cannot be accessed
error: …Run Code Online (Sandbox Code Playgroud) 我需要在我的项目的Git存储库中保留一份WordPress.
我想使用Git从GitHub下载WordPress更新,然后通过git push和/或推出这些更新git svn dcommit.
我目前有一个使用Git子模块的解决方案,它的工作原理; 但现在我需要将我的最新项目部署到仅支持SVN的服务器,而且我无法直接访问该服务器.因此,子模块已经出局.
我已经对Git的子树合并策略进行了大量阅读,我认为这是正确的解决方案; 但我读过的所有内容都希望我能够关注一个远程分支,并始终下载最新的代码.
相反,GitHub上的WordPress使用它的master分支 - 事实上,它的所有分支 - 用于开发; 版本被标记,但就是这样.从官方上讲,所有分支机构都处于永久的阿尔法状态.
我想我需要弄清楚的是如何子树合并标签.
现在,我这样做是为了阅读WordPress 3.5 webroot/wordpress(和命名空间WordPress标签),它的工作原理如下:
$ git remote add -t master --no-tags wordpress git://github.com/WordPress/WordPress.git
$ git config --add remote.wordpress.fetch +refs/tags/*:refs/tags/wordpress/*
$ git fetch wordpress
warning: no common commits
remote: Counting objects: 138547, done.
remote: Compressing objects: 100% (28297/28297), done.
remote: Total 138547 (delta 110613), reused 137367 (delta 109624)
Receiving objects: 100% (138547/138547), 46.05 …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用git,我想将现有项目导入github,一切都被删除了.在搜索完答案之后,我认为git在git pull之后删除了文件,我正在尝试恢复文件和文件夹,但我找不到如何做到这一点.
我接着做了下一个:
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git init
Initialized empty Git repository in /home/jesus/Escritorio/Django/Ujixy/.git/
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git add .
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: Catalogoapp/__init__.py
# new file: Catalogoapp/models.py
# new file: Catalogoapp/tests.py
# new file: Catalogoapp/views.py
# new file: Messageapp/__init__.py
# new file: Messageapp/models.py
# new file: Messageapp/tests.py
# new file: Messageapp/views.py
# new file: Ujixyapp/__init__.py
[...]
jesus@jesus-K52F:~/Escritorio/Django/Ujixy$ …Run Code Online (Sandbox Code Playgroud) 在Gitk中,我可以看到团队成员的提交(X)有两个父母,第一个父母是他自己的先前提交(A),另一个父母包含许多其他人提交(1到5).合并后,其他人(1到5和其他人)所做的所有更改都不再出现在X,B,C等...
A------------
\
X - B - C
/
1--2--3--4--5
/
e--r--j--k
/
l--m
Run Code Online (Sandbox Code Playgroud)
如果我提交X提交A它没有显示差异,如果我将X提交X提交5它显示所有缺少的更改.此外,在提交X,B或C时,git日志不会显示对提交1到5中的文件所做的更改.但是,如果我执行git log --full-history,则历史记录会显示在1中进行的更改到5,但这些更改仍未出现在实际文件中,并且历史记录未显示它们正在撤消.所以git log --full-history似乎与当前文件内容相矛盾.
我与提交X的用户进行了交谈.他说他没有进行重置或拒绝,他说他在相关时间内没有恢复任何提交.然而,他说他确实有时会做一个拉原点大师,导致其他人的变化被放入他的索引或工作树中,好像他已经做出了这些改变而不是这些改变的实际作者.他说,当这种情况发生时,他会做一个新的克隆,并且不会将任何东西从当地的回购推送给主人,因为他认为Git做错了什么.
这两件事是否相关(坏拉和坏合并)?
我怎样才能确切地说出发生了什么,以便我们将来可以避免这种情况?
是什么原因导致Git有时会将从原始主数据中提取的更改放在本地工作目录或索引中,就像它们是本地更改一样?
我从另一台计算机上进行了一些更改并将其发送到远程存储库。
当我尝试git pull origin <branch>从家里进行更改以获取这些更改时,它
说 Already up-to-date但这些更改不在我的计算机中,文件没有更改。
为什么?
编辑01:
当我尝试时git log
提交 10ewwqe9989861ad33335e40188dcab598bc2312 作者:姓名
日期:Sun Nov 27 23:46:40 2016 -0200
<在此处提交消息>
如果我在 bitbucket 提交部分检查此提交代码/名称,我会发现此提交比远程存储库中存在的最后一次提交落后。
编辑02:
>$ git remote -v
origin https://bitbucket.org/username/repositoryName (fetch)
origin https://bitbucket.org/username/repositoryName (push)
Run Code Online (Sandbox Code Playgroud)
>$ git fetch origin
From https://bitbucket.org/username/repositoryName
* [new branch] myBranch -> origin/myBranch
Run Code Online (Sandbox Code Playgroud)
>$ git log myBranch..origin/myBranch
commit 0220ff...
Author: John Doe <johndoe@email.com>
Date: Mon Dec 28 16:43:07 2016 -0200
Name of my last update to remote repository
Run Code Online (Sandbox Code Playgroud)
日志命令显示了正确的最后一次提交,即我的远程存储库中的最后一次提交以及我想要带到本地文件中的提交...但本地文件仍然不变。
StackOverflow 上提出了很多关于自动更新子模块的问题,包括:
git checkout自动执行git submodule update --recursive?但在我看来,对于 git 子模块,还没有单一的方法可以像svn up关于 svn-externals 一样工作。
所以既然git每天都在变化,我又敢再问:
有没有一种(方便的)方法来初始化和自动更新checkout 和 pull(即merge和rebase)的子模块检出(即与其相应的子模块提交 ID 保持同步)?
目前我有两种方法:
#1: 创建一个post-checkout,post-merge并post-rewrite钩住以下内容
#!/bin/sh
git submodule update --init --recursive
Run Code Online (Sandbox Code Playgroud)
正如您已经看到的那样,这种方法有几个缺点:
#2: 为pulland配置别名checkout
git config --global alias.up 'pull …Run Code Online (Sandbox Code Playgroud) 当我切换分支时,如果本地是干净的并且在其原始对应物之后,我想总是从源中提取最新的更改。本地分支是其远程分支的跟踪分支,fetch 按预期工作。
可以将 Git 配置为自动执行此操作吗?
是否有一个存储库范围的设置来为所有分支执行此操作?(我们的分支经常被创建和删除,因为公司政策是每个任务一个分支,在审查时被 PR 和合并)
编辑:
对于上下文,我使用 Visual Studio 2017 及其用户界面来执行 Git 命令。让 Git 保持最新没有问题。我需要使用命令行执行一些 Git 命令,例如重命名分支或隐藏 repo 设置。
当我说“本地是干净的”时,是的,它指的是来自git status和 VS的工作树,其中没有传出提交或本地修改的文件。VS 有一个非常漂亮的 UI,可以实时显示这些信息。
经过
(我们的分支经常被创建和删除,因为公司政策是每个任务一个分支,在审查时被 PR 和合并)
这应该是一种说“我真的不想为每个分支设置此设置或连接”的即兴方式,但解释是:
我们创建自己的本地分支,从主分支中分离出来来完成一项任务。在 VS 中,这是“从...创建本地分支”,它使用所需的名称执行分支的检出。在幕后,我确定这相当于git checkout -b fillcatnip master. fillcatnip是一个未跟踪的本地分支,直到推送到远程,但它将作为新分支推送fillcatnip而不是原始master. 在这一点上,它成为一个跟踪分支,并且可以master在任务完成时给出一个拉取请求 (PR) 以合并回。但是如果master在 PR 可以实现之前已经移动并发生冲突,那么在冲突解决之前无法合并分支。发生这种情况时,我可能已经开始了另一项任务。因此,如果我保存当前正在执行的任务(提交和推送、存储等),然后切换回冲突的分支,我想要该分支的远程副本而不是我自己的本地副本,因为有人可能已经推送在等待合并时对其进行更改。
我正在尝试从另一个分支获取文件的内容。
我正在做以下事情:
git checkout branchB some_specific_file.cc
Run Code Online (Sandbox Code Playgroud)
当前分支不受影响。我怀疑原因是即使我做了一个git pull我从来没有在branchB本地签出过。
如果我刚刚pull在 repo 中完成了一个但从未实际检查过另一个分支,有没有办法让这个命令起作用?
是否有等价于:
git pull
git checkout branchB
git checkout branchA
git checkout branchB some_specific_file.cc
Run Code Online (Sandbox Code Playgroud)
实际上不必切换到分支,所以最后一个命令有效?
我正在android studio中开发一个android项目,并使用VCS与团队的其他成员一起开发git.上次我尝试从原点拉出时,出现以下错误:"跟随未跟踪的工作树文件将被合并覆盖",但它没有显示任何导致错误的文件.我查了一下,项目中的每个类和文件都被添加到git中,所以我不知道问题是什么.我所做的改变是在文件夹"res"下创建"drawable"文件夹并添加了我在应用程序中使用的图像; 两者都加入了git.我该怎么办?
我在git中有多个帐户,我在三周前使用此帐户提交了代码。我将无法提取我的代码。我收到请求的URL返回错误:403我会尝试按Git返回错误代码403致命:HTTP请求失败, 但我无法解决我的错误
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
remote: Forbidden
fatal: unable to access
'https://chantidurgam@bitbucket.org/chantidurgam/patanjali.git/': The requested
URL returned error: 403
Run Code Online (Sandbox Code Playgroud)
完成但有错误,请参见上文。
git ×10
git-pull ×10
git-merge ×3
github ×2
android ×1
bitbucket ×1
branch ×1
git-branch ×1
git-checkout ×1
git-commit ×1
git-config ×1
git-log ×1
git-svn ×1
object ×1
pull-request ×1
recover ×1