我是git的新手。我在bitbucket上有一个存储库。现在我想在我的计算机上下载它并对项目进行一些更改,然后再次推送它。
首先,我通过以下行在本地目录中初始化了git:
$ git init
然后我设置了一些配置:
$ git config --global user.name "my name"
$ git config --global user.email my.email@gmail.com
然后我就这样下载了它:
$ git clone https://ShafizadehSajad@bitbucket.org/ ...
现在,我可以在本地文件夹中看到项目的文件。好的,好!
此外,我通过此命令在我的存储库和本地目录之间建立了连接:
$ git remote add origin https://ShafizadehSajad@bitbucket.org/ ...
现在当我输入$ git remove -v
时,结果将是:
origin https://ShafizadehSajad@bitbucket.org/ ... (fetch)
origin https://ShafizadehSajad@bitbucket.org/ ... (push)
似乎很好!
当我输入此命令时:git status
,我会看到所有红色的文件夹/文件。因此我输入了这个命令:
$ git add .
现在他们是绿色的!我也用这行写了一个提交:
$ git commit -m "there isn't any change"
然后将我的本地目录与bitbucket上的目录同步,我输入了这一行:
$ git push origin master
但是我收到了这个错误:
$ git push origin master
To https://bitbucket.org/lamtakam/lamtakam.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://ShafizadehSajad@bitbucket.org/lamtakam/lamtakam.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
出了什么问题,如何解决?
答案 0 :(得分:1)
你的第一步是错误的:
git init
这会在当前目录中初始化一个全新的git存储库。您不希望这样,您只想克隆现有的存储库。
实际发生的事情是,您随后克隆了在步骤1中初始化的新存储库中的现有存储库 。嵌套的git存储库有点复杂,但底线是文件显示为红色因为所有文件都是新初始化的git repo 的新文件(这与你在bitbucket中的repo没有任何关系)。
您当前的目录树如下所示:
/htdocs
/New Folder <--- you initialized the new git repo here
/lamkatam <--- this is the git repo you cloned
跳过第一步重新开始,仅执行git clone
(您可能希望在htdocs
文件夹中执行此操作)。您也可以跳过设置遥控器 - 当您进行克隆时,它会自动设置名为origin
的遥控器并正确配置它。
答案 1 :(得分:0)
一切都很好,与此同时有人更新了存储库,在推送之前你需要整合你的更改:
git pull
似乎远程存储库上的更改可能需要您的一些“合并”。如果这是真的,您应该更改副本并提交这些更改,然后执行:
git push
如果在此期间没有人没有更改原始存储库,您应该可以推送更改。
答案 2 :(得分:0)
提示:由于当前分支的提示落后于
,更新被拒绝
您需要先更新本地存储库(与远程同步),然后推送到远程(origin
)。
$ git pull origin master
$ git push -u origin master
答案 3 :(得分:0)
git push (name of the dir)
例如:git push myfolder