将现有源代码导入GitHub


609

如何将源代码从计算机导入到GitHub帐户?


4
我发现最简单的方法是使用GitHub GUI,然后将配置指向工作空间的根目录,然后单击“在硬盘驱动器上查找存储库”按钮,它将识别工作区中的所有Git本地存储库,并允许分别导入它们。简单。
djangofan 2012年

1
@djangofan您指的是哪个github GUI?您是否有指向GUI的链接?
安德森·格林


Pete的答案在OS X上效果很好-无需使用GUI。
funroll

Answers:


969

如果您有本地源代码,但要添加到新的远程新git存储库中,而不先“克隆”远程存储,请执行以下操作(我经常这样做-您在bitbucket / github中创建远程空存储库,然后向上推您的来源)

  1. 创建远程存储库,并获取URL,例如git@github.com:/youruser/somename.githttps://github.com/youruser/somename.git

    如果您的本地GIT存储库已设置,请跳过步骤2和3


  2. 在本地,源的根目录中, git init

    2a。如果您使用.gitignore和README.md初始化存储库,则应执行a操作,git pull {url from step 1}以确保您不会将文件提交给要忽略的源;)

  3. 在本地,在初始存储库中添加并提交所需的内容(git add .然后输入 git commit -m 'initial commit comment'


  4. 以名称“ origin”附加远程仓库(就像克隆一样)
    git remote add origin [URL From Step 1]

  5. 执行git pull origin master拉远程分支,以便它们同步。
  6. 提升主分支(将主分支更改为其他分支的其他分支):
    git push origin master

92
为我工作。我发现我需要git pull origin master在git push之前运行。没有它,在推送尝试期间出现“因为当前分支的尖端在后面”错误。也许是因为我用一个开始的Readme.md创建了远程存储库。
yuvilio

5
获取SSH协议的存储库URL,以便能够使用ssh私钥而不是输入密码来提交。
Snicolas 2012年

5
这就是为什么@yuvilio。如果您使用readme.md创建github存储库,那么实际上您现在正试图创建源。

7
正如@Snicolas所说,如果您使用SSH,请使用git@github.com:youruser / somename.git而不是git://github.com/youruser/somename.git。
tsusanka

5
创建新存储库后,GitHub会立即解释相同的过程。正如@yuvilio所说的那样,您不应使用README初始化存储库。相反,跟touch README.md在您现有的本地回购
西蒙尼

41

出色的免费电子书ProGit对此进行了解释。假设您已经有一个本地Git存储库和一个远程存储库。要连接它们,请使用:

$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin    git://github.com/schacon/ticgit.git
pb    git://github.com/paulboone/ticgit.git

要将数据从本地存储库推送到GitHub,请使用:

$ git push pb master

如果您尚未设置本地和/或远程存储库,请查看GitHub上的帮助以及本书前几章


21

使用GitHub GUI提及的评论之一,但并未在使用方面提供任何具体帮助,请注意,大多数(如果不是全部)答案仅在命令提示符下有用。

如果要使用GitHub GUI,可以执行以下步骤:

  1. 单击“ +”按钮,然后选择“添加本地存储库” 在此处输入图片说明
  2. 导航到包含您现有代码的目录,然后单击“添加”按钮。
  3. 现在,系统将提示您“在此处创建新的本地Git存储库”,因此单击“是”按钮。 在此处输入图片说明
  4. 根据需要添加“提交摘要”和“扩展说明”。默认情况下,所有文件都应已选中复选标记。点击“提交并同步”按钮。 在此处输入图片说明
  5. 现在,系统将提示您添加项目的名称和说明,以及将其推送到哪个帐户(如果您有多个帐户)。点击“推送存储库”按钮 在此处输入图片说明

旋转GitHub图标后,您的源代码将属于本地存储库,并与GitHub帐户上的远程存储库进行推送/同步。所有这些都是假设您之前已经设置了GitHub GUI,您的GitHub帐户和SSH密钥。


@cfont这是否保留了本地存储库中已经存在的悠久历史,还是只是创建了一个巨大的提交而我丢失了所有历史记录?
theJollySin

1
@theJollySin,抱歉,我需要努力使我的stackoverflow通知正常工作。这应该保留您现有本地存储库的历史记录。TBH,我当时没有进行测试,但是我想不出它会挤压您当地历史的原因。实际上,除非您确实想压榨提交,否则整个问题应该保留。
cfont

12

正如JB正确地指出的那样,只需遵循说明,它在GitHub上就变得异常容易。

这是登录后使用http://github.com/new在GitHub上建立新存储库后显示的说明示例。

Global setup:

 Set up Git:
  git config --global user.name "Name"
  git config --global user.email email@gmail.com


Next steps:

  mkdir audioscripts
  cd audioscripts
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Existing Git repository?

  cd existing_git_repo
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Importing a Subversion repository?

  Check out the guide for step-by-step instructions.

再简单不过了!



8

尝试执行Pete的步骤时,合并时遇到了一些麻烦。这些是我最终完成的步骤。

  1. 使用操作系统删除.git要提交的项目文件夹中的文件夹。这将为您提供一个干净的选择。这也是.gitignore在项目文件夹中创建文件的好时机。这可以是.gitignore您在github.com上创建存储库时创建的副本。进行此复制将避免在更新github.com存储库时将其删除。

  2. 打开Git Bash并导航到您刚刚.git从中删除文件夹的文件夹。

  3. 运行git init。这将在您所在的文件夹中建立本地存储库。

  4. 运行git remote add [alias] https://github.com/[gitUserName]/[RepoName].git。[别名]可以是您想要的任何东西。[alias]是要绑定到本地存储库的,因此计算机名对于[alias]来说效果很好。可以在github.com上找到该URL,并确保在顶部确保单击了HTTP | SSH | Git Read-Only中的HTTP按钮。该git://网址对我不起作用。

  5. 运行git pull [alias] master。这将更新您的本地存储库,并避免一些合并冲突。

  6. git add .

  7. git commit -m 'first code commit'

  8. git push [alias] master


1
-1这不仅仅是“将现有代码导入github”。它会删除整个存储库历史记录!
迈克尔·杜兰特


6

从Bitbucket:

增加现有的存储库。您的计算机上已经有一个Git存储库。让我们将其推向Bitbucket:

cd /path/to/my/repo
git remote add origin ssh://git@bitbucket.org/javacat/geo.git
git push -u origin --all   # To push up the repo for the first time

1
fyi -u与--set-upstream相同。
AnneTheAgile 2014年

4

我来到这里的目的是寻找一种将现有源文件添加到GitHub存储库的简单方法。我看到@Pete非常完整的回答,并想:“什么?!一定有更简单的方法。”

这是五个步骤中的更简单方法(无需控制台操作!)

如果您真的很着急,可以阅读第3步。其他内容只是为了完整起见。

  1. 在GitHub网站上创建一个存储库。(我不会通过逐步指导您来侮辱您的智慧。)
  2. 在本地克隆新的存储库。(您可以通过网站或桌面客户端软件来执行此操作。)
  3. 在硬盘驱动器上找到新克隆的存储库,然后像添加普通目录一样添加文件。
  4. 将更改同步回GitHub。
  5. 而已!

做完了!


4

将GitHub存储库添加为远程来源(将[]替换为您的URL):

git remote add origin [git@github.com:...]

切换到您的master分支并将其复制到development分支:

git checkout master
git checkout -b develop

将您的developer分支推送到GitHub developer分支(-f表示强制):

git push -f origin develop:develop

3

实际上,如果您选择在GitHub上创建一个空的仓库,它会为您提供确切的说明,您几乎可以将其复制并粘贴到您的终端中(在此时):

…or create a new repository on the command line

echo "# ..." >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:<user>/<repo>.git
git push -u origin master

2

这里有一些有关如何启动GitHub存储库,然后将已经创建的代码推送到其中的说明。第一组指令直接来自GitHub。

资料来源:https : //help.github.com/articles/create-a-repo/

  1. 在任何页面的右上角,单击,然后单击新建存储库

  2. 为您的存储库创建一个简短易记的名称。例如,“ hello-world”。

  3. (可选)添加对存储库的描述。例如,“我在GitHub上的第一个存储库”。

  4. 在创建公共或私有存储库之间选择。

  5. 使用自述文件初始化此存储库。

  6. 创建存储库。

恭喜你!您已经成功创建了第一个存储库,并使用README文件对其进行了初始化。

现在,在执行完这些步骤之后,您将需要将本地计算机上的代码推送到刚创建的存储库中,然后按照以下步骤进行操作:

  1. git init (在您的代码所在的根文件夹中)

  2. git add -A (这将添加目录中要提交的所有文件和文件夹)

  3. git commit -am "First Project commit"

  4. git remote add origin git@github.com:YourGithubName/your-repo-name.git (您可以在主页上“ ssh clone URL”下刚刚创建的GitHub存储库中找到此地址)

  5. git push -u origin master

而已。您的代码现在将被推送到GitHub。现在,每次您想要继续推送已更改的代码时,都可以这样做。

  1. git commit -m "New changes"

  2. git push origin master (如果master是您正在处理的分支)


1

我的解决方案:

问题是文件的大小,不能超过100M。

在迁移到github之前,请在存储库中执行以下操作:

git clone --mirror git://example.com/some-big-repo.git

wget http://repo1.maven.org/maven2/com/madgag/bfg/1.12.12/bfg-1.12.12.jar

mv bfg-1.12.12.jar bfg.jar

java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git

cd some-big-repo.git

git reflog expire --expire=now --all && git gc --prune=now --aggressive

git push

准备!

现在通过该工具再次进行迁移:https : //github.com/new/import

查看更多: 推送至github repohttps://rtyley.github.io/bfg-repo-cleaner/时出错

希望对您有帮助。:)


0

在git hub中创建您的存储库

允许通过GIT跟踪您的项目

  1. 使用CMD转到保存您的项目文件的文件夹-> cd / automation / xyz / codebase,使用git status命令检查git初始化是否出现:如果出现此错误消息:致命:不是git存储库(或任何父目录): .git,这意味着git不会跟踪您当前所在的文件夹。在这种情况下,请通过输入git init初始化项目文件夹中的git,然后执行添加和提交项目的过程。

如果您收到其他错误消息,请仔细阅读其内容。是不是说无法识别单词“ git”,这表示计算机上未安装git?就是说您已经在初始化git的文件夹或子文件夹中了?谷歌您的错误和/或输出,以了解它,并找出解决方法。

现在运行以下命令

回显“您的git中心存储库名称” >> README.md git init git add README.md git commit -m“首次提交” git remote add origin https://#

当您第一次打开存储库时,将获得上述块

如果在上一次命令运行后发生错误或什么也没有发生,请不要担心“ git push -u origin master”

转到存在代码的文件夹,并通过git扩展将其推送到git [URL],分支

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.