git使用

https://github.com/firstcontributions/first-contributions/blob/main/translations/README.zh-cn.md

origin/HEAD->origin/master 表示远程仓库 origin 的默认分支的别名
git clone <url>
git checkout b <新的分支>    //与远端无绑定
*	git checkout -b <新的分支> <origin/<远端分支>>	// 与远端绑定
git checkout <分支>  		// 切换分支
git checkout <远端分支名字> //可以直接创建一个远端分支同名的本地分支
git add <改变的文件>
git commit -m <改变的文件>
git commit <改变的文件>	// 增加备注, <esc>, :wq
*	git push origin <HEAD:远端分支>  // 如果没有远端分支,则直接在远端建立同名分支

git pull 拉取代码
git pull origin master 指定分支更新

// 设置网络代理
git config --global --unset http.proxy
git config --global --unset https.proxy

// 查看本地和远端的绑定关系
git branch -vv

// 查看所有分支(包括本地和远端分支)
git branch -a

// 查看远端分支
git branch -r   //第一行会显示一个origin/HEAD -> origin/master origin/HEAD 是 Git 中的一个特殊引用,它表示远程仓库(origin)的默认分支, 起到一个指示作用

// 解决冲突
git pull有冲突时
git stash先清空工作区
git pull拉取最新代码
git stash pop 弹出自己的代码
在代码中解决冲突后 git add这个文件解决git上的冲突提示

// 删除修改
git有三个分区,工作区,暂存区,仓库区
工作区:工作目录就是能看到的代码
暂存区:git add后进入暂存区
仓库区:git commit后进去仓库区
git restore对处于暂存区的文件不起作用,对于工作区的文件撤销修改,改变文件
git retore --staged 将暂存区的文件撤销到工作区
结合起来使用时 先将暂存区文件撤销到工作区后删除修改
git reset 清空工作区

// 删除文件,本地仓的记录
git rm <文件名>

// 删除分支
git push origin --delete 分支名     // 远端
git branch -d 分支名					// 本地

// 初始化本地进行提交

1、在github创建仓库
2、git init
3、git remote add origin <url> //将远端的仓库链接,绑定到本地
4、git add / git commit
5、git push -u origin <本地分支名字>   //这一步会在远端的仓库中创建与本地分支一样的分支名字
git remote remove origin //删除远端仓链接
git remote -v  //查看绑定的仓

完成一次提交的两种提交方式

🔄 合并发生在: 你的 commit(本地历史区)和远程分支之间的合并 ➡️ 进入 Git 的本地分支历史层(HEAD 层)进行 merge 或 rebase。

🧠 本质: 你告诉 Git:“我已经准备好一个快照(commit)了,请和远程的快照一起合并”。

冲突也会出现在工作区,但合并是基于提交的历史。

# 1. 查看当前变更
git status

# 2. 添加到暂存区
git add .                     # 或指定文件名

# 3. 本地提交
git commit -m "修改说明"

# 4. 拉取远程(合并)
git pull origin main          # 推荐:确保代码是最新的
// 如果没有冲突,Git 会自动合并远程改动。
//如果有冲突,需要手动解决 → git status 查看冲突 → 修改文件 → git add 冲突文件 → git commit

# 5. 推送到远程仓库
git push origin main

🔄 合并发生在: 你恢复 stash pop 时,才将工作区的内容与新的代码进行合并 ➡️ 合并发生在 工作区与远程拉取后的内容之间。

🧠 本质: 你先把当前修改「藏起来」(stash 放进 Git 的 stash 区),拉远程的新代码,再将修改套回来。如果两者冲突,冲突发生在 工作区层面。

git stash
git pull
git stash pop
// 发现冲突修改
git add
git commit
git push

如果你想切换分支,但是当前分支有修改,会提示,此时

git stash
git checkout develop

git checkout master
git stash pop

撤销提交

| 场景 | 命令 | 是否保留代码 | 是否改提交记录 | | ———— | —————————————- | —— | ——- | | 仅撤销提交保留改动 | git reset --soft HEAD~1 | ✅ 保留 | ✅ 撤销 | | 撤销提交并移出暂存区 | git reset --mixed HEAD~1 | ✅ 保留 | ✅ 撤销 | | 全部撤销提交和改动 | git reset --hard HEAD~1 | ❌ 删除 | ✅ 撤销 | | 修改提交信息 | git commit --amend | ✅ 保留 | ✅ 替换提交 | | 已 push 后强制撤销 | git reset --soft HEAD~1 && git push -f | ✅ 保留 | ✅ 改远程 |

Table of Contents