git操作

一、独立开发项目

1.新项目克隆代码:git clone git地址

2.git add -A

3.git commit -m "提交代码"

4.git push origin master(要提交的分支名称)

5.git pull origin master (日常开发拉最新代码)

二、协同配合的项目

1.git clone 地址

2.git checkout master

3.git pull origin master

4.git checkout -b feature_xuxj

5.git push -u origin feature_xuxj

主分支:master

保护分支:relsase

子分支:feature_xuxj

提交代码过程:

1.git pull origin relsase

2.git add -A

3.git commit -m "提交代码"

4.git push origin feature_xuxj

5.git merage 合并代码,一般是手动合并,没问题再确认合并,这一步不一定是命令行合并

三、常见命令

1.git log #查看提交日志

2.git log --oneline #查看提交历史,找到要撤销的提交的 hash

3.git branch backup-branch #创建备份分支

3.代码回滚的办法:

方法一:重置到指定提交(彻底删除后续提交)

git reset --hard +(对应的hash)

方法二:反向提交(安全撤销,保留历史)

1. 查看提交历史,找到要撤销的提交的 hash

git log --oneline

2. 创建反向提交(撤销指定版本的更改)

git revert <commit-hash> # 例:git revert a1b2c3d

3. 解决冲突(如有)并提交

git add .

git commit -m "Revert commit: a1b2c3d"

4. 推送到远程

git push origin <分支名>

4.重置本地代码(用git最新的全量代码覆盖本地除依赖外的全部代码)

git fetch origin

git reset --hard

注意:git pull origin master 是拉取最新的代码,和本地不一样的代码或者文件会进行替换,如果本地有不一样的文件会保留!!!

5.强制推送(不太建议这么干)

git push --force #强制推送风险:会覆盖远程历史,确保团队其他成员知晓

6.git init #初始化新仓库

7.基础操作:

初始化仓库

https://gitee.com/ruowu666666/cool-car.gitgit

克隆远程仓库

git clone https://github.com/user/repo.git

查看当前状态

git status

添加所有修改到暂存区

git add .

提交更改

git commit -m "描述信息"

推送代码到远程

git push origin 分支名

8.分支管理:

创建新分支

git branch feature-xxx

切 main

git switch main # (Git 2.23+)

创建并切换分支

git checkout -b hotfix-xxx

删除本地分支

git branch -d 分支名

查看所有分支(含远程)

git branch -a

关联本地分支到远程

git push -u origin 分支名

9.代码回退:

撤销工作区修改(单个文件)

git checkout -- 文件名

撤销暂存区的修改

git reset HEAD 文件名

回退到上个版本(保留修改)

git reset --soft HEAD~1

彻底回退到某提交

git reset --hard commit_id

撤销某次提交(生成新提交)

git revert commit_id

10.协作同步:

拉取远程更新(合并)

git pull origin 分支名

拉取远程更新(变基)

git pull --rebase origin 分支名

强制推送(覆盖远程)

git push --force-with-lease # 比--force更安全

解决冲突后继续合并

git merge --continue

解决冲突后继续变基

git rebase --continue

11.查看信息:

查看提交历史

git log --oneline --graph -n 10

查看文件修改历史

git blame 文件名

查看工作区与暂存区差异

git diff

查看最近提交内容

git show HEAD

搜索提交历史

git log -S "关键字"

12.高级技巧

临时保存修改

git stash save "备注"

git stash pop # 恢复

修改最后一次提交

git commit --amend

交互式变基(合并/修改提交)

git rebase -i HEAD~3

清理未跟踪文件

git clean -fd

找回误删的提交

git reflog # 找到commit_id后reset

13.标签管理:

创建标签

git tag v1.0.0 -m "正式版"

推送标签到远程

git push origin --tags

删除远程标签

git push origin :refs/tags/v1.0.0

14.配置相关:

设置用户名/邮箱

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

生成SSH密钥

ssh-keygen -t ed25519 -C "your_email@example.com"

设置默认编辑器(VSCode)

git config --global core.editor "code --wait"

15.如果是重新换个文件夹克隆的项目

克隆之后本地还运行修改了,但是想提交代码

1.git branch 运行之后检查是否有你要提交的分支:例如如果看不到 feature_xuxj,说明你不在这个分支上。

2.git checkout -b feature_xuxj 或者新版 git switch -c feature_xuxj

3.git push -u origin feature_xuxj -u 会把本地分支与远程分支关联起来,以后只需要 git push 即可

注意:本地叫 feature_xuxj,远程叫 feature_xuxj_dev,可以:git push origin feature_xuxj:feature_xuxj_dev

总结:当遇到上述问题时 git status + git branch

相关推荐
小猿姐2 小时前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SelectDB11 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
ApacheSeaTunnel14 小时前
当多表数据涌入,Apache SeaTunnel 如何巧妙化解主键冲突?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
A_Lonely_Cat19 小时前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
Elasticsearch19 小时前
使用 Elastic Agent Builder 和 Sarvam AI 构建多语言语音 agent
elasticsearch
和你看星星3 天前
Git rerere:让重复冲突只解决一次
git
大大大大晴天3 天前
Hudi Metadata Table 与 Hive Sync (HMS)怎么选?
大数据
手可摘星辰7774 天前
一次线上FlinkCDC异常排查复盘
大数据·flink
大大大大晴天4 天前
Hudi技术内幕:Metadata Table原理与实践
大数据
武子康5 天前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent