git push origin master不推送文件

用户3451003

我已经在Mac上设置了我的远程git和本地git,我能够在远程计算机(Linux)上创建一个git repo(git init myrepo)。添​​加了几个文件,并确保它们没有问题(git add,git commit -m“ test ”)

从我的本地服务器,我可以从远程克隆存储库,而没有任何问题(git clone ssh:// user @ IP / Path)

到目前为止,还不错,没有问题。

我在本地创建了一些文件,并使用git add和commit,然后尝试使用git push origin master将它们推送到远程服务器

最初,我收到一条错误消息,搜索解决方案是直接在远程服务器上运行此命令:git config receive.denyCurrentBranch ignore

这样就解决了问题,现在我可以成功进行推送了:

$ git push origin master

git add test.sh 
git add git*
git commit -m "Adding 2 new files and updating test.sh"
[master 4dd11a0] Adding 2 new files and updating test.sh
3 files changed, 109 insertions(+)
create mode 100644 gitHowToUrls.txt
create mode 100644 git_howto.txt
git push origin master
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.91 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To ssh://root@IP/path/myrepo
ad4a8b2..4dd11a0  master -> master

$ git push -u origin master

Branch master set up to track remote branch master from origin.
Everything up-to-date

$ git push origin HEAD:master

Everything up-to-date

我什至检查以确保文件匹配

$ git ls-remote origin

52543130bff4f9f37a23b01b0c44c7549ab82dd9        HEAD
52543130bff4f9f37a23b01b0c44c7549ab82dd9        refs/heads/master

$ git ls-remote

From ssh://root@IP/path/myrepo
52543130bff4f9f37a23b01b0c44c7549ab82dd9        HEAD
52543130bff4f9f37a23b01b0c44c7549ab82dd9        refs/heads/master

但是,当我转到远程仓库(root @ IP / path / myrepo)时,看不到任何新文件!!!知道我在做什么错吗?

我在远程服务器上运行git log,我看到了所有注释:

root@IP [myrepo]# git log
 commit 52543130bff4f9f37a23b01b0c44c7549ab82dd9
Author: joe d <myemail@myemail>
Date:   Sat Mar 22 15:56:30 2014 -0700

    adding again, since first time didn't work

 commit 4dd11a0235cdabe528f8755253989ce85df4fa8b
Author: joe d <myemail@myemail>
Date:   Sat Mar 22 15:48:08 2014 -0700

    Adding 2 new files and updating test.sh

 commit ad4a8b224989dc2131b6a33f41b95ce8b2a5c96a
Author: joe d <myemail@myemail>
Date:   Sat Mar 22 11:33:34 2014 -0700

   test

 commit 956ff16e081587fa59a8cec73fc383744c5c3a5e
Author: joe d <myemail@myemail>
Date:   Sat Mar 22 18:32:30 2014 +0000

    test

我的远程仓库:

root@IP [myrepo]# ls -la
total 20
drwxr-xr-x 4 root    root    4096 Mar 22 18:32 .
drwxr-x--- 6 joe nobody  4096 Mar 22 18:30 ..
drwxr-xr-x 8 root    root    4096 Mar 22 18:38 .git
drwxr-xr-x 2 joe joe 4096 Mar 21 22:12 images
-rw-r--r-- 1 root    root     992 Mar 22 18:31 index.html

我的本地仓库:

localmachine:myrepo joe$ ls -la
total 32
drwxr-xr-x   8 joe  1668562246   272 Mar 22 16:42 .
drwxr-xr-x   3 joe  1668562246   102 Mar 22 11:33 ..
drwxr-xr-x  15 joe  1668562246   510 Mar 22 16:07 .git
-rw-r--r--   1 joe  1668562246   445 Mar 22 16:42 gitHowToUrls.txt
-rw-r--r--   1 joe  1668562246  3291 Mar 22 15:56 git_howto.txt
-rwxr-xr-x   1 joe  1668562246    81 Mar 22 15:43 test.sh
drwxr-xr-x   6 joe  1668562246   204 Mar 22 11:33 images
-rw-r--r--   1 joe  1668562246   992 Mar 22 11:33 index.html

谢谢

新注:

好的,所以我肯定不是在使用裸分支,我认为它是我在远程系统上运行的命令

git config receive.denyCurrentBranch ignore

我已经删除了本地和远程的两个仓库,并再次创建了它(肯定没有)

然后尝试像这样推送,并收到此错误:

localrepo$ git push origin master
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.98 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
    remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ssh://root@IP/path/myrepo
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh://root@IP/path/myrepo'

这次我进入拒绝而不是忽略

git config receive.denyCurrentBranch refuse

运行git push生成新的错误消息:

localRepo$ git push origin master

Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.98 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
To ssh://root@IP/path/myrepo
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh://root@IP/path/myrepo'

如何取消选中分支,以便可以成功地从本地回购推送到远程回购?

VonC

您正在推送至非裸仓库(之所以起作用,是因为receive.denyCurrentBranch被设置为忽略)。

但是,您的远程非裸仓库可能会:

  • 已经签出了与master不同的分支(并且由于您是在推动master,因此工作树的内容不会改变)
  • 或者已经签出了提交(这意味着您处于分离的HEAD状态,可以通过该仓库内部的git分支进行确认,以查看其中的任何分支是否标记为已签出)。

我已经删除了本地和远程的两个仓库,并再次创建了它(肯定没有)

通过默认情况下receive.denyCurrentBranch设置为“ refuse”,所以你的错误信息是与相一致。

尝试将其设置为“忽略”,并且由于您的远程仓库已打开master,您的推送将继续进行。

但是您将看不到任何文件:您需要一个后接收钩子,该钩子将签出您的工作树或将其重置为HEAD,以使文件实际出现。

例如,请参阅“ Git:保证对非裸存储库的推送安全

我的接收后挂钩看起来像这样:

export GIT_WORK_TREE=..
git checkout -f HEAD

OP报告中评论

原始问题的答案是在远程服务器上运行此命令:

git config receive.denyCurrentBranch ignore 

然后添加export GIT_WORK_TREE=.. git checkout -f HEAD到您的gitrepo<PATH>/.git/hooks/post-receive

那成功了,我现在可以将文件从本地推送到远程仓库了!!!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

git push origin master不推送文件

来自分类Dev

git:git push -u origin origin:master

来自分类Dev

Git: git push -u origin origin:master

来自分类Dev

'git push origin master'冻结

来自分类Dev

git push origin master问题

来自分类Dev

git push origin branchname总是推送给master

来自分类Dev

git push origin branchname总是推送给master

来自分类Dev

`git push origin master` 不起作用

来自分类Dev

Push Commit origin:master with git (android studio)

来自分类Dev

git push origin master和git push origin main之间的区别

来自分类Dev

使用“ git push origin master”上传时,Git失败

来自分类Dev

git push origin master 显示所有内容是最新的,但没有推送任何内容

来自分类Dev

我执行“ git push origin master”时出现Github错误(错误:src refspec master不匹配)

来自分类Dev

使用git pull和git push命令的Origin master和origin / master之间的区别

来自分类Dev

为什么“ git push origin master”不起作用?

来自分类Dev

git push origin master =许可被拒绝(publickey)

来自分类Dev

git push origin master:权限被拒绝(公钥)错误

来自分类Dev

git push origin是否总是合并到master分支?

来自分类Dev

git push origin master:权限被拒绝(公钥)错误

来自分类Dev

为什么“ git push origin master”不起作用?

来自分类Dev

“ git push”和“ git push origin master”有什么区别?

来自分类Dev

Git状态报告分支是最新的'origin / master',但是git push被拒绝

来自分类Dev

我可以使用git push origin master:myBranch将在master分支中修改的代码推送到我的分支吗?

来自分类Dev

让git push假设-u origin $ branch

来自分类常见问题

-u标志在git push -u origin master中意味着什么?

来自分类Dev

git push -u origin master错误用户名或密码错误

来自分类Dev

git push -u origin master 中的 -u 参数是什么意思?

来自分类Dev

git push origin HEAD和git push origin [current-branch-name]有什么区别?

来自分类Dev

如何移动git origin / master

Related 相关文章

  1. 1

    git push origin master不推送文件

  2. 2

    git:git push -u origin origin:master

  3. 3

    Git: git push -u origin origin:master

  4. 4

    'git push origin master'冻结

  5. 5

    git push origin master问题

  6. 6

    git push origin branchname总是推送给master

  7. 7

    git push origin branchname总是推送给master

  8. 8

    `git push origin master` 不起作用

  9. 9

    Push Commit origin:master with git (android studio)

  10. 10

    git push origin master和git push origin main之间的区别

  11. 11

    使用“ git push origin master”上传时,Git失败

  12. 12

    git push origin master 显示所有内容是最新的,但没有推送任何内容

  13. 13

    我执行“ git push origin master”时出现Github错误(错误:src refspec master不匹配)

  14. 14

    使用git pull和git push命令的Origin master和origin / master之间的区别

  15. 15

    为什么“ git push origin master”不起作用?

  16. 16

    git push origin master =许可被拒绝(publickey)

  17. 17

    git push origin master:权限被拒绝(公钥)错误

  18. 18

    git push origin是否总是合并到master分支?

  19. 19

    git push origin master:权限被拒绝(公钥)错误

  20. 20

    为什么“ git push origin master”不起作用?

  21. 21

    “ git push”和“ git push origin master”有什么区别?

  22. 22

    Git状态报告分支是最新的'origin / master',但是git push被拒绝

  23. 23

    我可以使用git push origin master:myBranch将在master分支中修改的代码推送到我的分支吗?

  24. 24

    让git push假设-u origin $ branch

  25. 25

    -u标志在git push -u origin master中意味着什么?

  26. 26

    git push -u origin master错误用户名或密码错误

  27. 27

    git push -u origin master 中的 -u 参数是什么意思?

  28. 28

    git push origin HEAD和git push origin [current-branch-name]有什么区别?

  29. 29

    如何移动git origin / master

热门标签

归档