git工作流
工作区
平时写代码的地方
暂存区
git add 会把文件提交到暂存区
本地仓库
git commit 会把暂存区的文件提交到本地仓库
远程仓库
git push 会把文件push到远程仓库
git pull 从远程仓库拉取文件
1.git init 初始化仓库
这会在项目文件夹下创建一个.git 目录
2.git add . 将文件添加至暂存区
3.git commit -m "" 将暂存区的文件提交到本地仓库
git remote 将本地仓库与远程仓库关联
git remote add origin https://github.com/user/repo.git
4.git push
git push -u origin master 第一次推送使用-u 将本地分支与远程分支关联起来
git push -u origin master:main 将本地的 master 分支关联远程 main 分支
改名
git branch -m main
git push -u origin main
修改文件后工作区的文件状态会变为已修改
我们提交前先从远程拉取仓库git pull
git add .
git commit -m
git push
#集中式工作流-经典的SVN式协作模式
#=开始工作前:同步最新代码=
git clone https://github.com/team/project.git
git pull origin main #获取团队最新更改
#=开发新功能=
#直接在main分支上开发
git add .
git commit-m"feat:添加用户认证功能"
#=推送更改
git push origin main
#==如果推送失败(有冲突)
git pull origin main
#拉取冲突的更改
#手动解决冲突·.
git add .
git commit-m"resolve:合并冲突"
git push origin main
#重新推送
遇到_non-fast-forward_
git pull --rebase origin master
git push -u origin master
设置用户名/邮箱(用户签名)首次安装需要设置 (和远程仓库无关)
$ git config --global user.name shiraayano
$ git config --global user.email [email protected]
https方式需要输入频繁密码
方式1:缓存 30 天(推荐先用这个)
git config --global credential.helper 'cache --timeout=2592000'
方式2:永久保存到本机 ~/.git-credentials(明文)
git config --global credential.helper store
从以前的提交中分叉并且合并
完整操作记录(时间线顺序)
1. 初始状态:查看Git提交记录
git log- 确认当前分支状态、提交历史,确定目标回滚版本为
c4efd40(FFT真实频谱版本)。
2. 基于指定提交创建新分支
# 基于c4efd40创建feature/fft-optimize分支,并自动切换到该分支
git checkout -b feature/fft-optimize c4efd4091d8680ef960ecbe9023e1d45ab640061- 分支命名:
feature/fft-optimize(体现功能为FFT优化) - 此时工作目录为
c4efd40版本状态,可在该分支上进行开发修改。
3. 合并分支到master(覆盖式合并,自动忽略冲突)
# 第一步:切回master主分支
git checkout master
# 第二步:核心合并操作,所有冲突以feature/fft-optimize分支代码为准
git merge -X theirs feature/fft-optimize- 若弹出nano编辑器编辑合并提交信息:
- 按
Ctrl + O→ 回车(保存) - 按
Ctrl + X(退出)
- 按
- 合并后生成新提交
9c6e083,提交信息为Merge branch 'feature/fft-optimize' 合并分支。
4. 验证合并结果
# 查看当前分支(确认在master上)
git branch
# 输出示例:
# feature/fft-optimize
# main
# * master
# 查看最新提交(确认是合并后的提交)
git log --oneline -1
# 输出示例:
# 9c6e083 (HEAD -> master, origin/master) Merge branch 'feature/fft-optimize' 合并分支5. 删除老分支(确认合并成功后)
# 删除本地feature/fft-optimize分支
git branch -d feature/fft-optimize
# (可选)如果之前推送到了远程,同时删除远程分支
git push origin --delete feature/fft-optimize