在GitHub上创建新仓库并上传本地代码的步骤如下:
- 创建新仓库
- 登录到你的GitHub账号。
- 在GitHub主页的右上角,点击 “+” 图标,然后选择 “New repository”。
- 填写仓库名称,选择是否公开或私有,可以选择初始化一个README文件,添加.gitignore文件或选择许可证。
- 点击 “Create repository”。
- 在本地初始化Git仓库
如果你的项目还没有初始化为Git仓库,需要先在本地项目目录下初始化它。打开终端或命令行工具,切换到你的项目目录:
cd /path/to/your/project
git init
- 添加文件到仓库
添加项目中的文件到Git仓库中:
git add .
这里,git add . 命令会添加当前目录下的所有文件到仓库。如果你只想添加特定文件,可以使用 git add 。
- 提交更改
提交你的更改到本地仓库:
git commit -m “Initial commit”
“Initial commit” 是提交信息,你可以根据实际情况进行更改。
- 连接到GitHub仓库
将本地仓库连接到GitHub上你刚创建的仓库。你需要复制仓库的URL,它通常看起来像这样:
https://github.com/yourusername/your-repository-name.git
使用下面的命令设置远程仓库地址:
git remote add origin https://github.com/yourusername/your-repository-name.git
- 推送更改到GitHub
将你的代码推送到GitHub上:
git push -u origin master
这里假设你使用的是master分支。如果你使用的是main或其他分支,需要相应地更改命令中的分支名。
如果推送成功,你就完成了将本地代码上传到GitHub的过程。
注意事项
- 如果你的GitHub仓库初始化时选择了创建README文件,可能会导致推送时出现冲突。你可以先拉取GitHub上的更改,再推送你的代码:
git pull origin master --allow-unrelated-histories
git push -u origin master
- 根据GitHub的更新,新创建的仓库默认分支可能是main而不是master。确保你使用正确的分支名。
如果你希望将本地的 master 分支合并到远程的 main 分支上,你可以按照以下步骤操作:
合并当前分支到main
- 检出main分支
首先,你需要确保你有远程 main 分支的本地副本。可以先拉取远程分支列表,然后检出 main 分支:
git fetch origin
git checkout -b main origin/main
这个命令会创建并切换到本地的 main 分支,该分支跟踪远程的 origin/main。
- 合并master到main
现在,你在 main 分支上,可以将 master 分支合并进来:
git merge master
如果有冲突,Git会提示你解决。解决完冲突后,需要使用 git add . 命令标记冲突已解决,然后继续完成合并操作。
- 推送更改到远程main分支
合并完成后,你可以将更改推送到GitHub上的 main 分支:
git push origin main
这样,你就成功地将本地的 master 分支的更改合并到了远程的 main 分支上。
注意事项
- 如果你的本地 master 分支有新的提交需要合并到 main,你可能需要先切换回 master 分支并拉取/推送任何新的更改。
- 如果你刚从 master 分支检出并创建了 main 分支,且 main 分支在远程仓库中是空的(或者是新创建的),可能不需要执行合并操作,直接推送 master 分支的内容到 main 分支即可。
- 如果你想要将 main 作为默认分支,记得在GitHub仓库的设置中更改默认分支设置。
上传深度学习模型的问题
对于大于 100 MB 的文件,GitHub 建议使用 Git Large File Storage (LFS) 扩展来跟踪这些文件。Git LFS 允许你将大型文件的版本控制外置到GitHub LFS服务器,而不是直接存储在你的Git仓库中。这样可以避免仓库变得过大,并保持克隆和拉取操作的高效性。以下是使用Git LFS的基本步骤:
- 安装Git LFS
首先,你需要在你的机器上安装Git LFS。可以通过运行以下命令来安装:
git lfs install
- 跟踪大文件
使用Git LFS跟踪特定的大文件或文件类型。例如,如果你想要跟踪所有.pt(PyTorch模型)文件,可以使用以下命令:
git lfs track “*.pt”
这会在你的仓库中创建或修改一个.gitattributes文件,以包含跟踪大文件的规则。
- 添加和提交文件
现在,当你添加和提交文件时,Git会自动使用LFS来处理这些大文件:
git add .
git commit -m “Add large model files”
- 推送到GitHub
最后,像往常一样推送你的更改到GitHub:
git push origin main
Git LFS会自动处理大文件的上传到GitHub LFS服务器。
在文档中引用模型
如果你的模型文件非常大,而你不希望它们直接存储在GitHub仓库中(即使是通过Git LFS),你可以选择将这些文件上传到云存储服务(如Google Drive、Dropbox或者专业的模型托管服务),然后在你的项目文档(如README.md)中提供链接,从而引用这些模型。例如:
模型下载
你可以从以下链接下载预训练的模型文件:
这种方法可以有效地绕过GitHub对文件大小的限制,同时便于管理和分享大型文件。
其他问题
移除当前仓库所绑定的远程仓库
要显示当前Git仓库绑定的远程仓库信息,你可以使用命令:
git remote -v
这个命令会列出所有远程仓库的别名及其对应的URL。
如果你想要移除一个已绑定的远程仓库,可以使用git remote remove命令,后跟远程仓库的别名。例如,如果远程仓库的别名是origin,则可以使用以下命令移除它:
git remote remove origin
这会从当前的Git仓库配置中移除名为origin的远程仓库。请确保你使用正确的远程仓库别名替换origin,如果你的远程仓库使用了不同的别名。
分支操作
Git分支操作是Git管理多个版本的强大功能之一。下面是一些基本的分支操作命令及其说明:
- 查看分支:
- git branch:列出本地所有分支。
- git branch -a:列出所有本地分支和远程分支。
- 创建分支:
- git branch :创建一个新的分支,但不会自动切换到新分支。
- git checkout -b :创建并切换到新的分支。这是git branch 和git checkout 的简写。
- 切换分支:
- git checkout :切换到已存在的分支。
- git switch :Git 2.23版本引入的新命令,用于切换分支,与git checkout相同的功能。
- 合并分支:
- git merge :将指定分支的历史合并到当前分支。这通常在将特性分支合并回main或master分支时使用。
- 删除分支:
- git branch -d :删除一个分支。使用-d选项表示只能删除已经被当前分支合并过的分支。
- git branch -D :强制删除一个分支,即使它有未合并的更改。
- 重命名分支:
- git branch -m :重命名分支。如果你已经在分支上,可以省略。
- 推送分支到远程仓库:
- git push origin :将本地分支推送到远程仓库。如果远程仓库中没有这个分支,它会被自动创建。
- 追踪远程分支:
- git checkout --track origin/:创建一个本地分支来追踪远程分支。
- git switch -c --track origin/:Git 2.23版本引入的新命令,用于创建并切换到新的分支,同时设置跟踪远程分支。
这些是Git分支操作中最常用的命令。在实际使用中,你可能需要根据你的开发流程和项目需求选择适当的命令。