Git¶
源代码管理、版本控制、方便多人协同开发
工作区=>暂存区=>本地仓库=>远程服务器
# 从远程分支创建本地分支:
git checkout -b <本地分支名> origin/<远程分支名>(用于开发远程已存在的分支)
# 暂存工作区(临时切换分支):若当前修改未完成需切换分支,可先用 git stash 暂存工作区,切换回来后用 git stash pop 恢复。
git stash # 暂存工作区
git stash pop # 恢复
配置相关¶
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
基础命令¶
# 查看工作区与暂存区的差异
git status
# 暂存当前目录所有修改
git add . <文件名>
# 撤销暂存
git reset . <文件名>
# 查看工作区与暂存区的差异
git diff <文件名>
# 提交到本地仓库
git commit -m "提交说明"
# 修改最后一次提交
git commit --amend "可修改说明或补充暂存文件"
# 撤销提交但保留修改
git reset --soft HEAD~1 # 提交记录消失,修改保留在暂存区。
# 彻底删除提交及修改
git reset --hard HEAD~1 # 危险!永久删除未提交的修改。
# 查看提交历史
git log
分支命令¶
# 查看所有(本地 + 远程)分支
git branch -a
# 创建新分支
git branch <分支名>
git branch dev
# 切换到新分支
git switch <分支名>
git switch dev
# 或者一步完成创建并切换分支
git checkout -b login
# 本地新建分支第一次推远程
git push --set-upstream origin models_django
远程服务器¶
#
冲突处理与版本回退¶
- 冲突处理
当多人修改同一文件并推送时,可能出现冲突。解决步骤:
- 先拉取远程代码:
git pull
(此时会提示冲突文件) - 打开冲突文件,查找
<<<<<<< HEAD
(本地修改)、=======
(分隔线)、>>>>>>> origin/main
(远程修改)标记的区域 - 手动编辑保留正确内容,删除冲突标记
- 重新暂存并提交:
git add <冲突文件>
+git commit -m "解决冲突"
-
推送解决后的代码:
git push
-
版本回退
若提交后发现错误,需回退到之前的版本:
- 回退到指定版本(保留修改):
git reset --soft <提交哈希值>
(哈希值可通过git log
获取) - 回退并丢弃工作区修改:
git reset --hard <提交哈希值>
(谨慎使用,会删除未提交的修改) - 若已推送到远程,需强制推送回退:
git push -f origin <分支名>
(多人协作时慎用,可能覆盖他人提交)