github 上传代码常用命令
私人仓库
main
(本地分支)
main
是你本地的分支。这是你在本地仓库中正在操作的分支。当你切换到 main
分支时,你会看到它代表了你本地的工作副本。
- 本地分支:你可以在本地修改、提交代码,执行任何操作,但这些操作不会直接影响远程仓库,直到你通过
git push
将更改推送到远程仓库。
origin/main
(远程追踪分支)
origin/main
是你本地仓库中用于跟踪远程仓库 origin
的 main
分支的引用。它是一个 远程追踪分支,用于显示远程仓库中 main
分支的最新状态。(origin 可理解为指向远程仓库的一个快捷方式)
- 远程追踪分支:这些分支反映了远程仓库的状态,但它们并不是本地的真正分支。
origin/main
表示你最后一次从origin
拉取(或fetch
)远程仓库的main
分支的状态。
命令 | 功能 |
---|---|
git init | 初始化仓库 |
git add 文件名(.) | 添加文件(所有文件)到暂存区 |
git commit -m “提交说明” | 提交到本地仓库 |
git push 远程名称(origin) 分支名 (origin和分支名可省略,表示将当前分支推送到远程仓库) | 将本地分支推送到远程仓库的同名分支 |
git branch 分支名 git checkout 分支名 git checkout -b 分支名 | 创建新分支 切换分支 创建并切换到该分支 |
git merge 分支名 | 合并指定分支到当前所属分支 |
Common Steps:
git add .
git commit -m "提交说明"
git push
协作仓库
命令 | 功能 |
---|---|
git clone 仓库地址 | 克隆远程仓库 |
git fetch | 1.从远程仓库下载本地仓库中缺失的记录 2.更新远程分支(如 origin/main) 但是不会自动合并到你的当前分支 |
git pull git pull --rebase | git fetch + git merge git fetch + git rebase |
git rebase 分支名 | 将当前所属分支上的提交“迁移”到指定分支的最新提交之后,从而使提交历史变得更直线、整洁 |
git merge
-
方式:将两个分支的历史“合并”在一起。
-
效果:如果两个分支都有新的提交,Git 会生成一个 合并提交(merge commit),保留两个分支的独立历史,从而形成一个分叉再合流的结构。
-
示例:
git checkout main git merge feature
这会将
feature
分支的更改合并到main
分支上,并生成一个合并提交。
git rebase
-
方式:将当前分支上的提交“摘取”下来,重新应用在目标分支的最新提交之后,从而改变当前分支的基础。
-
效果:产生一个 线性的提交历史,没有额外的合并提交,但会 重写提交历史(提交的 SHA-1 值会改变)。
-
示例:
git checkout feature
git rebase main
这会将 feature
分支的提交依次重新应用到 main
分支的最新提交之后,使得历史看起来像是直接从 main
分支上发展出来的。