git 常用命令
1. 初始化
git init // 初始化当前目录为Git仓库
git init filePath // 指定目录作为Git仓库
2. 检查状态
git status // 检查状态
3. 添加和删除文件
git add filename // 添加
git add -f filename // 强制添加
git rm filename // 删除
4. 提交版本
如果您不使用-m,会出现编辑器来让你写自己的注释信息。
当我们修改了很多文件,而不想使用git add命令,直接使用commit自动来提交本地修改,我们可以使用-a标识。
git commit -m "add file"
git commit -a -m "add some file"
5. 发布版本
git push origin master // 以master分支发布
6.取回更新
git pull // 所有分支
git pull origin A // 指定A分支
7.分支
git branch branch_name // 创建分支
git checkout branch_name // 切换分支
git branch -d branch_name // 删除分支
// 将其他分支的更改提交到主分支,则需切换回master分支,然后使用合并
git checkout master
git merge branch_name
// 将部分代码从一个分支转移到另一个分支是常见需求。
参考[cherry-pick](https://ruanyifeng.com/blog/2020/04/git-cherry-pick.html)
git cherry-pick commit-id1 commit-id2
如果有冲突,则`git status`查看冲突,解决后`git add .`,然后`git cherry-pick --continue`
8.更换远程链接
git remote -v // 查看
git remote set-url origin URL // 设置为URL
9.子分支修改
git branch -a // 查看所有分支
git checkout -b sub_branch // 创建并切换分支
git fetch // 检查远程仓库是否更新
git pull origin master // 拉取最新master分支
TODO Something // 进行操作
git add . // 添加所有
git commit -m "do something" // 提交
git push origin sub_branch // 推送
git branch -D sub_branch // push成功后删除本地分支
10.master合并分支
git fetch
git pull origin master // 拉取最新master分支
git branch -a
git merge origin/sub_branch
git push origin master
git push origin --delete sub_branch // push成功后删除远程分支
11.删除分支
git branch -D branch_name // 删除本地分支
git push origin --delete branch_name // 删除远程分支
12. 分支重命名
git branch -m oldName newName
13.回退
回退可参考git reset 三种模式
- 已经Commit
git reset --soft commit-id // 回退到指定commit soft表示保留修改
- 还未add
git checkout --file
- 已经add
git reset HEAD <路径/文件名>
在远程分支上新建分支
git checkout -b A --track origin/A // 也可先切换到远程分支, 再创建
查看子分支父分支
git reflog show 'sub_branch name'
14. stash操作
分支修改暂不提交,切换其他分支
git stash // 当前分支保留
git checkout other_branch // 切换至其他分支
// doing something
git checkout branch // 切换回当前分支
git stash pop
分支stash不小心删除恢复
1.首先输入:
git fsck --lost-found
会看到 一条一条的记录 类似:
dangling commit 6cb2480fa3a59c140b58a07ac734838a2d958d44
dangling commit e9b4c85c437aacf628e724903df21648538963d4
dangling blob 983515c6f78d232f1c8878e98598218c142aa9b9
dangling commit 4ab67a050c5a8288da28154f79ea89106918ea36
dangling commit c2363d6a03dad8f2bc986f8d21ab0fa38c74477b
dangling blob 4338d18c5224397a03b40548b7e0f1ea9ca3ffff
dangling commit 17398e4d6e8cec82081b2d94f61a367c1243b727
dangling commit 14bae3242e6a2b19132d9f8d9ad2c05736eba395
2.复制dangling commit 的id(其他的dangling blob不用关心)
3.然后输入
git show 6cb2480fa3a59c140b58a07ac734838a2d958d44
3.1查看具体内容, 找到你想要的记录
记录中会描述日期和摘要,
日期是你git stash 的日期(这里很重要),
摘要会记录你是在哪一条commit 上进行git stash操作的,
类似(commit 1c4c8073f32f02be27a3fd6107ea4e77af5932b3
Merge: 9374eb7 c0ac76f
Date: Mon Oct 14 11:35:25 2019 +0800
WIP on master: 93844b7 fix some bugs)
4.找到你想要的记录后输入
git merge 6cb2480fa3a59c140b58a07ac734838a2d958d44
15. 拉取子模块
git submodule sync
git submodule update --init --recursive
16. 追踪代码责任人
git blame -L n1, n2 fileName
例如:
git blame -L 12, 14 test.txt
会显示test.txt的12行到14行的最近一次修改记录
17. 分支管理模型
https://blog.csdn.net/wang_zhong_cheng/article/details/120454376
gitlab flow
阿里 AOneFlow
18. .gitignore对某个文件无效
某个文件已经加入版本管理,再修改.gitignore将对其无效,需要先删除该文件的缓存区,然后重新添加至.gitignore
// 1. 先清楚缓存
git rm -r --cached filename -f
// 2. 再重新将其添加至.gitignore
// 3. git status查看是否还有记录filename的修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端