如何获得以下场景的变化?

发布于 2024-10-19 20:15:03 字数 1062 浏览 8 评论 0原文

我试图了解 git 的工作原理。因此,我初始化了一个空存储库并向其中添加了一个文件,如下所示。

cd /home/adnan/workspace
mkdir git-test
cd git-test
git init
touch README
git add .
git commit -m "initial commit"

现在,我使用以下命令序列克隆了这个存储库

cd /home/adnan/Desktop
git clone /home/adnan/workspace/git-test

,之后我对 README 文件进行了更改,提交它们并使用以下命令将它们推送到第一个存储库

cd /home/adnan/Desktop/git-test
vi README
git commit -a -m "second commit"
git push

现在在两个存储库中运行 git log 显示相同的内容IE

提交 cdf192f7e26e734c7a56cc830ade2e2d13c6fb0d 作者:阿德南·瓦希德 日期:
2011 年 3 月 1 日星期二 14:05:12 +0500

第二次提交

提交 f8b75838e728e46cae949f66ff86d29c0864d976 作者:阿德南·瓦希德 日期:
2011 年 3 月 1 日星期二 14:03:23 +0500

初始提交

但我不知道如何获取原始存储库中的更改,即 /home/adnan/workspace/git-test。如果我尝试执行git checkout,我会收到以下消息:

M   README

如何获取我在克隆存储库中所做并推送的更改?

I am trying to understand how git works. So I initialized an empty repo and added a file to it as following.

cd /home/adnan/workspace
mkdir git-test
cd git-test
git init
touch README
git add .
git commit -m "initial commit"

Now I cloned it this repo using the following sequence of commands

cd /home/adnan/Desktop
git clone /home/adnan/workspace/git-test

after that I made changes to README file, committed them and pushed them to the first repo using following commands

cd /home/adnan/Desktop/git-test
vi README
git commit -a -m "second commit"
git push

Now running git log in both repos shows same thing i.e

commit
cdf192f7e26e734c7a56cc830ade2e2d13c6fb0d
Author: Adnan Waheed
Date:
Tue Mar 1 14:05:12 2011 +0500

second commit

commit
f8b75838e728e46cae949f66ff86d29c0864d976
Author: Adnan Waheed
Date:
Tue Mar 1 14:03:23 2011 +0500

initial commit

but I cant figureout how to get the changes in the original repo i.e /home/adnan/workspace/git-test. If I try to do git checkout, I get this message:

M   README

How do I get the changes that I made in the cloned repo and pushed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

☆獨立☆ 2024-10-26 20:15:03

您在执行 git push 时是否看到错误消息?像这样的东西(假设 git > 1.7.0)?

$ git push
Counting objects: 5, done.
Writing objects: 100% (3/3), 246 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
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 /home/pfarmer/git-test/git-test
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/home/pfarmer/git-test/git-test'

基本上默认情况下你不能推送到非裸存储库。但是你可以做的是 git pull ,所以尝试一下:

cd /home/adnan/workspace/git-test
git pull /home/adnan/Desktop/git-test

你应该看到类似以下内容:

$ git pull ../git-test2/
From ../git-test2
 * branch            HEAD       -> FETCH_HEAD
Updating 161aeea..c66b221
Fast-forward
 README |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Did you see an error message when you did git push? Something like this (assuming git > 1.7.0)?

$ git push
Counting objects: 5, done.
Writing objects: 100% (3/3), 246 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
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 /home/pfarmer/git-test/git-test
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/home/pfarmer/git-test/git-test'

Basically by default you can't push to a non-bare repository. But what you can do is a git pull, so try:

cd /home/adnan/workspace/git-test
git pull /home/adnan/Desktop/git-test

and you should see something like:

$ git pull ../git-test2/
From ../git-test2
 * branch            HEAD       -> FETCH_HEAD
Updating 161aeea..c66b221
Fast-forward
 README |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文