场景1
公司git上有了一个项目,让你把代码拉到本地,然后添加功能并传上去
1.首先获取远程仓库
使用 git clone <远程仓库URL> 命令。例如:
git clone https://xxx/xxx/xxx.git
这个命令做了几件关键事情:
在你的本地机器上创建一个新目录(默认与仓库同名,这里是 project)。
将远程仓库的所有文件和历史提交记录完整地下载到这个新目录中。
自动在本地仓库中设置一个名为 origin 的远程跟踪引用,指向你克隆的那个远程仓库 (URL)。
自动创建并切换到默认分支(通常是 main 或 master)。
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 <新远程仓库的URL>
例如:git remote add origin https://xxx/xxx/xxx.git
验证:git remote -v通过这个命令可以检查是否与远程建立连接了
6..推送本地分支到远程 (git push -u):
由于远程仓库是空的,你需要将你的本地分支(及其历史提交)第一次推送到远程仓库,并建立跟踪关系:(通过git init创建的仓库该分支并没有和上游分支跟踪)
git push -u origin <你的本地分支名(通常是main或master)>
例如: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