将现有源代码导入 GitHub
Posted
技术标签:
【中文标题】将现有源代码导入 GitHub【英文标题】:Import existing source code to GitHub 【发布时间】:2011-06-07 05:08:18 【问题描述】:如何将源代码从我的计算机导入到我的 GitHub 帐户?
【问题讨论】:
我发现最简单的方法是使用 GitHub GUI,然后将配置指向工作空间的根目录,然后单击“在硬盘驱动器上查找存储库”按钮,它会识别您的所有 Git 本地存储库工作区并允许单独导入它们。容易。 @djangofan 你指的是哪个 github GUI?你有 GUI 的链接吗? windows.github.com Pete 的回答在 OS X 上效果很好——无需使用 GUI。 【参考方案1】:如果您有本地源代码想要添加到新的远程新 git 存储库而不首先“克隆”远程,请执行以下操作(我经常这样做 - 您在 bitbucket/github 中创建远程空存储库,然后推上你的来源)
创建远程仓库,获取git@github.com:/youruser/somename.git
或https://github.com/youruser/somename.git
等URL
如果您的本地 GIT 存储库已设置,请跳过第 2 步和第 3 步
在本地,在源代码的根目录git init
2a。如果您使用 .gitignore 和 README.md 初始化 repo,您应该执行 git pull url from step 1
以确保您不会将文件提交到您想要忽略的源;)
在本地,在初始存储库中添加并提交您想要的内容(对于所有内容,git add .
然后git commit -m 'initial commit comment'
)
使用名称“origin”附加远程存储库(就像克隆一样)git remote add origin [URL From Step 1]
git pull origin master
拉取远程分支,使它们同步。
向上推您的主分支(将主分支更改为其他分支):git push origin master
【讨论】:
为我工作。我发现我需要在 git push 之前运行git pull origin master
。没有它,我在推送尝试期间收到“因为您当前分支的尖端落后”的错误。也许这是因为我创建了一个带有启动 Readme.md 的远程存储库。
获取 SSH 协议的 repo URL,以便能够使用您的 ssh 私钥而不是输入密码来提交。
@yuvlio 这就是原因。如果您使用 readme.md 创建您的 github 存储库,那么实际上您现在落后于您要创建的源代码。
正如@Snicolas 所说,如果您使用 SSH,请使用 git@github.com:youruser/somename.git 而不是 git://github.com/youruser/somename.git 。
GitHub 在您创建新存储库后立即解释了相同的过程。正如@yuvilio 已经说过的,您不应该使用自述文件初始化您的存储库。相反,在您现有的本地仓库中使用touch README.md
【参考方案2】:
这在excellent free eBook 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 和 previous chapters in the book 上的帮助。
【讨论】:
【参考方案3】:提到的其中一个 cmets 使用 GitHub GUI,但它没有提供任何关于使用的具体帮助,并且注意到大多数(如果不是全部)答案仅在命令提示符下有用。
如果您想使用 GitHub GUI,可以按照以下步骤操作:
-
单击“+”按钮并选择“添加本地存储库”
使用现有代码导航到目录,然后单击“添加”按钮。
现在应该提示您“在此处创建一个新的本地 Git 存储库”,因此单击“是”按钮。
根据需要添加“提交摘要”和“扩展描述”。默认情况下,您的所有文件都应已选中并带有复选标记。单击“提交和同步”按钮。
现在将提示您添加项目的名称和描述,以及将其推送到哪个帐户(如果您有多个)。单击“推送存储库”按钮
在 GitHub 图标旋转片刻之后,您的源代码将属于本地存储库,并与您 GitHub 帐户上的远程存储库推送/同步。所有这一切都假设您之前已经设置了 GitHub GUI、您的 GitHub 帐户和 SSH 密钥。
【讨论】:
@cfont 这是否保留了我本地存储库中已经存在的长期历史,或者它只是创建了一个巨大的提交并且我已经丢失了我所有的历史? @theJollySin,对不起,我想我需要努力让我的 *** 通知正常工作。这应该保留现有本地存储库的历史记录。 TBH,我当时没有对此进行测试,但我想不出它会压垮你当地历史的原因。事实上,除非你真的想压缩提交,否则重点应该是保留它。【参考方案4】:正如 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.
再简单不过了!!
【讨论】:
【参考方案5】:是的。创建一个新的存储库,在源当前存在的目录中执行git init
。
更多:http://help.github.com/creating-a-repo/
【讨论】:
【参考方案6】:在尝试执行 Pete 的步骤时,我在合并时遇到了一些麻烦。这些是我最终完成的步骤。
使用您的操作系统删除您要提交的项目文件夹内的.git
文件夹。这将为您提供一个干净的工作状态。这也是在项目文件夹中创建.gitignore
文件的好时机。这可以是您在 github.com 上创建存储库时创建的 .gitignore
的副本。当您更新 github.com 存储库时,执行此复制将避免将其删除。
打开 Git Bash 并导航到您刚刚从中删除 .git
文件夹的文件夹。
运行git init
。这会在您所在的文件夹中设置一个本地存储库。
运行git remote add [alias] https://github.com/[gitUserName]/[RepoName].git
。 [别名] 可以是任何你想要的。 [alias] 用于绑定到本地存储库,因此机器名称适用于 [alias]。该 URL 可以在 github.com 上找到,确保单击顶部的 HTTP|SSH|Git Read-Only 之外的 HTTP 按钮。 git://
URL 对我不起作用。
运行git pull [alias] master
。这将更新您的本地存储库并避免一些合并冲突。
运行git add .
运行git commit -m 'first code commit'
运行git push [alias] master
【讨论】:
-1 这不仅仅是“将现有代码导入 github”。它会删除整个存储库历史记录!【参考方案7】:-
打开您的 GitHub 仪表板(如果您已登录,则位于 https://github.com/)
点击New Repository
填空;点击创建存储库
按照随后出现的页面上的说明进行操作
【讨论】:
【参考方案8】:来自 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
【讨论】:
fyi,-u 与 --set-upstream 相同。【参考方案9】:我来这里是为了寻找一种将现有源文件添加到 GitHub 存储库的简单方法。我看到@Pete 非常完整的答案并想“什么?!一定有更简单的方法。”
这是五步的简单方法(无需控制台操作!)
如果你真的很着急,你可以阅读第 3 步。其他的只是为了完整。
-
在 GitHub 网站上创建一个存储库。 (我不会让你一步一步来侮辱你的智慧。)
在本地克隆新存储库。 (您可以通过网站或桌面客户端软件执行此操作。)
在您的硬盘驱动器上找到新克隆的存储库,然后像添加到普通目录一样添加文件。
将更改同步回 GitHub。
就是这样!
完成!
【讨论】:
【参考方案10】:将 GitHub 存储库添加为远程源(将 [] 替换为您的 URL):
git remote add origin [git@github.com:...]
切换到你的master分支并复制到develop分支:
git checkout master
git checkout -b develop
将你的开发分支推送到 GitHub 开发分支(-f
表示强制):
git push -f origin develop:develop
【讨论】:
【参考方案11】:实际上,如果您选择在 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
【讨论】:
【参考方案12】:以下是有关如何启动 GitHub 存储库然后将您已创建的代码推送到其中的一些说明。第一组指令直接来自 GitHub。
来源:https://help.github.com/articles/create-a-repo/
在任意页面的右上角,单击,然后单击新建存储库。
为您的存储库创建一个简短易记的名称。例如,“hello-world”。
(可选)添加您的存储库的描述。例如,“我在 GitHub 上的第一个存储库。”
在创建公共或私有存储库之间进行选择。
使用自述文件初始化此存储库。
创建存储库。
恭喜!您已成功创建了第一个存储库,并使用 README 文件对其进行了初始化。
现在,在这些步骤之后,您需要将本地计算机上的代码推送到您刚刚创建的存储库,然后按照以下步骤执行此操作:
git init
(在您的代码所在的根文件夹中)
git add -A
(这将添加您要提交的目录中的所有文件和文件夹)
git commit -am "First Project commit"
git remote add origin git@github.com:YourGithubName/your-repo-name.git
(您可以在刚刚创建的 GitHub 存储库主页的“ssh 克隆 URL”下找到此地址)
git push -u origin master
就是这样。您的代码现在将被推送到 GitHub。现在,每次您想继续推送已更改的代码时,都可以这样做。
git commit -m "New changes"
git push origin master
(如果 master 是您正在处理的分支)
【讨论】:
【参考方案13】:我的解决方案:
问题是文件大小,不能超过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
查看更多: Error while pushing to github repo 和 https://rtyley.github.io/bfg-repo-cleaner/
希望对你有所帮助。 :)
【讨论】:
【参考方案14】:在 git hub 中创建你的仓库
允许通过 GIT 跟踪您的项目
-
使用 CMD 转到保存项目文件的文件夹->cd /automation/xyz/codebase
使用命令 git status 检查 git 初始化
如果您收到此错误消息:致命:不是 git 存储库(或任何父目录):.git,这意味着您当前所在的文件夹没有被 git 跟踪。在这种情况下,通过键入 git init 在项目文件夹中初始化 git,然后执行添加和提交项目的过程。
如果您收到另一条错误消息,请仔细阅读其中的内容。通过说“git”这个词无法识别,是不是说你的计算机上没有安装 git?是说您已经在初始化 git 的文件夹或子文件夹中吗?谷歌您的错误和/或输出以了解它,并找出解决方法。
现在运行以下命令
#echo "你的 git hub 仓库名称" >> README.md 混帐初始化 git 添加 README.md git commit -m "第一次提交" git 远程添加源 https:// #
当你第一次打开你的存储库时,你会得到上面的块
如果在最后一个命令运行“git push -u origin master”后发生错误或没有任何反应 别担心
转到代码可用的文件夹,并通过 git 扩展将其推送到 git [URL],分支
【讨论】:
以上是关于将现有源代码导入 GitHub的主要内容,如果未能解决你的问题,请参考以下文章
如何将代码从新的本地文件夹推送到现有 Github 存储库的主分支并保留提交历史记录?
Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构