- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经在我的 mac 上设置了我的远程 git 和本地 git我能够在远程机器 (Linux) 上创建一个 git repo (git init myrepo)添加了几个文件并没有问题地提交它们(git add,git commit -m "test")
在我的本地,我能够毫无问题地从远程克隆 repo (git clone ssh://user@IP/Path)
到目前为止一切顺利,没有任何问题。
我在本地创建了几个文件并使用 git add 和 commit 然后尝试使用 git push origin master 将它们推送到远程服务器
最初我收到一条错误消息并搜索解决方案是直接在远程服务器上运行此命令:git config receive.denyCurrentBranch 忽略
这解决了问题,现在我可以成功推送了:
$ 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-远程源
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
我已经删除了本地和远程的两个 repos 并重新创建了它(肯定不是 bare)
然后像这样尝试推送并收到此错误:
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'
如何取消选中分支以便成功地从本地推送到远程仓库?
最佳答案
您正在推送到一个非裸仓库(因为 receive.denyCurrentBranch
被设置为忽略)。
但是您的远程非裸仓库有可能:
I have deleted both repos on local and remote and created it again (No bare for sure)
默认,receive.denyCurrentBranch
设置为 ' refuse
',因此您的错误消息与此一致。
尝试将其设置为“忽略”,因为您的远程仓库在 master
上,您的推送将通过。
但是您不会看到任何文件:您需要一个接收后 Hook 来检查您的工作树或将其重置为 HEAD,以便文件实际出现。
例如参见“Git: making pushes to non-bare repositories safe”
my post-receive hook looks like this:
export GIT_WORK_TREE=..
git checkout -f HEAD
OP报道 in the comments :
the answer to the original issue is run this on the remote server:
git config receive.denyCurrentBranch ignore
Then Add
export GIT_WORK_TREE=.. git checkout -f HEAD
To your gitrepo<PATH>/.git/hooks/post-receive
That did the trick and I am now able to push files from my local to the remote repo!!!
关于git push origin master 不推送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585118/
XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allow
Git diff 似乎在比较时返回不同的变化: git diff origin/master ... origin/branch git diff origin/master...origin/bra
我正在研究 3.1 Git Branching - Branches in a Nutshell 中的 git 分支概念 我正在玩虚拟存储库。 git log --oneline --decorate
我知道有很多类似的问题,唯一的区别是我从 **same ** 域提供的两个页面得到了这个。这可以在下面的示例中看到。 Uncaught DOMException: Blocked a fram
我被要求使用 Fork Workflow,即我必须处理具有相同或相似名称的多个分支。我为什么要使用这些不同的变体? 以下是不同命名约定的一些示例: 我的分支机构 起源我的分支 起源/我的分支机构 远程
这个问题已经有答案了: How do I delete a Git branch locally and remotely? (41 个回答) 已关闭 9 年前。 好的,我已经创建了一个 origin
这是我关于如何让 lerna 在 Jenkins 中运行的一系列问题的一部分。 上一期: lerna publish on Jenkins "git remote update" Fails "Cou
当我尝试从我的 Angular 6 应用程序访问 Webhdfs 时,我收到如下所示的错误。在我看来,我几乎尝试了所有方法,包括更改 core-site.xml 和 hdfs-site.xml 中的设
我正在从不同的来源向我的服务器发出 Ajax POST 请求以供用户登录。我已经在我的 application_controller.rb 中正确设置了 Cross Origin header : d
我刚刚克隆了一个存储库并在 Git 中开始了一个新分支。我已经这样做了很多次而没有遇到问题。今晚当我尝试使用 git branch --set-upstream develop origin/deve
我对 Git 还很陌生,但仍在掌握它的窍门。我最近才开始使用分支机构,遇到了一些问题。 我有两个开发系统,一个 Ubuntu 桌面和一个 MacBookPro。我在 Ubuntu 系统上的一个新的 o
这个问题在这里已经有了答案: Why does "git push main" work on GitHub when "git push master" does not? Also what i
我想从我的应用访问一个 API。 curl 请求是: curl --request POST https://... --header 'Authorization: Token ...'
我试图理解的遗留 makefile 具有 -Wl,-z,origin,-rpath,'$ORIGIN/../lib' 好的,我看到 -Wl 表示以下是链接器选项;逗号将替换为空格。 GNU ld 的联
我正在寻找 OpenShift Origin 和 OpenShift Enterprise 之间的主要区别。我知道第一个是开源的,后者是商业版。与开源版本相比,OpenShift Enterprise
我在 Sourcetree 中有这个历史图表: Sourcetree graph 如何将最后一次提交从 origin/development 复制到 origin/master 分支? 第二个问题:图
运行 git 命令时空格和斜杠有什么区别? 我有时会看到 git push origin master(这是一个空格) 还有其他时候我看到 git rebase origin/master(使用斜杠)
根据文档,git pull 执行 git fetch 然后执行 git merge,但是在那种情况下执行 git pull origin master 应该执行 git fetch origin ma
我正在使用我的 git 存储库,并在早些时候对 master 分支进行了相当多的提交。现在我意识到它有点太吵了,我想将所有这些 merge 到一个提交中。 102381 commit z .... 1
我制作了一个小的 xslt 文件来创建一个名为 weather.xsl 的 html 输出,代码如下: 我想将 html 输出加载到 html 文件中的 div 中,我正在尝试
我是一名优秀的程序员,十分优秀!