如何在新计算机上同步我的git存储库?

时间:2017-04-20 05:04:35

标签: git github bitbucket

我是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.

出了什么问题,如何解决?

4 个答案:

答案 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