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

2. 基于指定提交创建新分支

# 基于c4efd40创建feature/fft-optimize分支,并自动切换到该分支
git checkout -b feature/fft-optimize c4efd4091d8680ef960ecbe9023e1d45ab640061

3. 合并分支到master(覆盖式合并,自动忽略冲突)

# 第一步:切回master主分支
git checkout master

# 第二步:核心合并操作,所有冲突以feature/fft-optimize分支代码为准
git merge -X theirs 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

https://www.runoob.com/git/git-create-repository.html