通过git上传代码的两种方式(超级详细)
场景1
公司git上有了一个项目,让你把代码拉到本地,然后添加功能并传上去
1.首先获取远程仓库
使用
git clone
命令。例如:git clone https://xxx/xxx/xxx.git
这个命令做了几件关键事情:
2.可以添加或修改文件
3.暂存更改 (
git add
):
使用
git add
命令将你想要包含在下一次提交中的更改标记为“已暂存”。这告诉 Git 这些改动是你确认要记录的。添加所有更改:
git add .
(注意最后有个点)添加特定文件:
git add filename1 filename2
4.
提交更改到本地仓库 (git commit
):
使用
git commit
命令将暂存区的快照正式记录到你的本地 Git 仓库历史中。
git commit -m \"描述本次提交的清晰信息\"
关键点: 这个提交只存在于你的本地计算机上,还没有影响到远程仓库 (
origin
)。5.推送更改到远程仓库 (
git push
):通常git clone 之后就已经对上游进行跟踪了,直接push就行,但是如果新创建分支还是要设置对上游的跟踪(idea的提交自动会帮你与上游建立跟踪)当然不设置也行不过每次push或者pull的时候就需要加git push/pull origin 【分支名称】了
使用
git push
命令将你本地分支上的提交上传到与之关联的远程分支(通常是origin/你的当前分支名
)。首次推送当前分支:
git push -u origin
(例如git push -u origin main
)。-u
(或--set-upstream
) 选项会建立本地分支与远程分支的跟踪关系,之后在这个分支上只需git push
即可。后续推送(已建立跟踪关系后):
git push
这是你的本地更改真正同步到团队共享仓库的时刻。
总结此场景流程:
克隆 (clone) -> 修改 -> 暂存 (add) -> 提交到本地 (commit) -> 推送到远程 (push)
场景2
自己新建了一个xx项目想要上传到git上
注意:第一件事要在git上创建一个仓库,重点来了!!!一定不要点击初始化readme文件按钮
1.初始化本地 Git 仓库 (
git init
):
这是起点。在项目根目录执行:
git init
这个命令做了:
在当前目录下创建一个隐藏的
.git
子目录。这个目录包含了 Git 管理版本控制所需的所有元数据(对象数据库、暂存区索引、HEAD 指针等)。将这个目录变成一个 Git 仓库的根目录。
通常会自动创建默认分支
master
(老版本) 或main
(新版本)。你可以用git branch
查看。2.可以添加或修改文件
3.暂存初始文件/更改 (
git add
)
与场景一相同。你需要明确告诉 Git 哪些文件需要纳入版本控制。
添加所有文件:
git add .
(常见于初始化提交)添加特定文件:
git add README.md index.html
4.进行首次提交 (
git commit
):
与场景一相同。将暂存区的快照(通常是项目的初始状态)提交到本地仓库。
git commit -m \"Initial commit\"
5.(可选但通常必要) 关联远程仓库 (
git remote add
):(重点需要关联远程)与场景1不同,由于这个本地库是我们自己创建的,所以一定要和远程仓库建立关联(注意:这个和与上游分支跟踪不同)
目前为止,所有操作都在你的本地。为了备份、协作或部署,你通常需要将这个本地仓库链接到一个空的远程仓库。
在 GitHub/GitLab 等平台上创建一个新的空仓库(注意不要初始化 README、.gitignore 等,否则会产生冲突)。【也就是上边说的不要点击初始化readme文件按钮】
获取这个新远程仓库的 URL。
回到你的本地仓库目录,添加一个指向这个远程仓库的引用(通常命名为
origin
):git remote add origin 例如:git remote add origin https://xxx/xxx/xxx.git
验证:
git remote -v通过这个命令可以检查是否与远程建立连接了
6..推送本地分支到远程 (
git push -u
):由于远程仓库是空的,你需要将你的本地分支(及其历史提交)第一次推送到远程仓库,并建立跟踪关系:(通过git init创建的仓库该分支并没有和上游分支跟踪)
git push -u origin 例如:git push -u origin main
-u
参数非常重要,它设置了上游跟踪(upstream tracking)。设置后,以后在这个分支上只需运行git push
即可。总结此场景流程:
初始化 (init) -> [添加文件] -> 暂存 (add) -> 提交到本地 (commit) -> (可选)关联远程 (remote add) -> 首次推送并设置上游 (push -u)
最后来介绍三种push的方式 以及区别
git push git push -u origin main git push origin main