在学校和工作中遇到的一些git用法

一、git的基础用法

常用 Git 命令清单

1、提交流程

csharp 复制代码
//查看当前哪些文件发生更改
git status   
​
//将本地代码 添加到 暂存区  [全文件名:添加这一个文件   .:所有的发生更改文件都添加到暂存区]
git add 全文件名|.
​
//将暂存区的代码 提交到暂存区--生成版本号
git commit -m "提交版本备注信息"
​
//将有版本的暂存区代码 推送到远程仓库的固定分支
git push origin master

2、拉取流程

  • 第一次克隆别人的项目
bash 复制代码
git clone 别人项目的地址(https://gitee.com/.....)
  • 拉取最新版本

    git pull origin master

3、小组项目

如果小组项目 在提交前 需要先拉取项目

  • 提交流程(个人经验---不一定正确)
csharp 复制代码
//先拉取一次项目
git pull origin master
​
git add .
git commit -m "xxx"
​
//再拉取一次项目
git pull origin master
​
//最后在push
git push origin master

4、git commit -m 规范(常用)

sql 复制代码
git commit -m "feat:新功能"
​
git commit -m "fix:修补bug"

5、其他语句

  • 切换分支:git checkout 分支名
  • 创建分支:git branch 分支名
  • 删除分支:git branch -d 分支名
  • 合并:git merge 分支名

6、合并分支到主分支

git merge 要合并的分支

然后git push

二、git的其他用法

1、在vscode 使用git

在我们创建完项目后,将代码传上 git 后,我们再进项目修改会发现在一些代码文件的右边后有一些不同颜色的大写字母就像这样

  • 关于字母的解释【网上找的】
  • A:A是Added的缩写。表示这个文件是新增的,它在本地仓库中不存在,但是已经被添加到暂存区,等待提交。
  • U:U是Untracked的缩写。表示这个文件是未跟踪的,它在本地仓库中不存在,也没有被添加到暂存区,需要你手动添加或忽略。
  • M:M是Modified的缩写。表示这个文件是被修改的,它在本地仓库中存在,但是已经被修改
  • D:D是Deleted的缩写。表示这个文件是被删除的,它在本地仓库中存在,但是已经被删除
1、基础用法

点击提交后会弹出对话框 【是】

【同步上去】

【确定】

此外,也可以直接点提交按钮进行提交

  • 合并分支【在合并之前可以先 git fetch一下】

  • git fetch可以定期检查远程仓库是否有新的提交,以保持你的本地仓库与远程仓库保持同步

    如果遇到代码冲突,要先解决冲突

2、git commit --amend 【使用强制推送的时候,一定要保证分支是私有的】

当我们代码已经提交之后,后面又去改了代码,不想重新commit (创建新的节点)就可以使用

sql 复制代码
git commit --amend
  • 步骤

    • git add #暂存修改
    • git commit --amend #修改最后一次的commit
    • git push --force #强制推送 (覆盖远程)
  • 如果遇到git 操作之后有一堆信息显示,但是不是报错,是正常信息,可以使用 :wq 退出

3、git rebase 变基分支

合并自己的分支用rebase,基于自己的分支进行rebase,不能是共有分支,必须是私有分支

变基就相当于把自己的分支进行一个更新

  • 步骤(假设自己分支名为feature,主分支为master)

    • 1、当要改自己的分支,但是自己的分支落后于主分支,将自己分支的代码先上传到远程分支仓库feature
    • 2、切到主分支msater,获取最新的代码 git fetch -p 之后合并
    • 3、本地master分支更新之后,切回到feature分支,进行变基分支 git rebase msater,将master分支更新的变基到feature分支上面
    • 现在feature本地分支是最新的,但是可能会和远程feature分支有冲突,所以不要合并 ,直接git push origin --force
  • 如果出现冲突,就查看冲突的地方,进行更改

4、git cherry-pick

假设我们现在有两个分支,一个master分支、一个feature分支

我们在feature分支上面提交了a和b,但是我们只想将b的修改合并到master上面,这个时候就可以用到 git cherry-pick

  • 步骤

    • 切换到需要pick的分支,比如上面所举例的master分支

    • git cherry-pick 【commit的提交的hash】如下图 git cherry-pick ac53f7c0fdfd2efa236e5dccb01ee39c8af1c443

5、git stash 暂存文件

假设现在有两个分支,一个dev1,一个dev2 我们在dev2里面改了代码,发现应该在dev1里面改这个代码的时候 或者,你要去dev1,但是不想讲dev2的代码提交到远程分支 这时候就可以用到git stash

  • 步骤

    • git stash (在dev2 分支执行)
    • git checkout dev1(切换到 dev1 分支)
    • git stash pop (在dev1 分支执行)
相关推荐
Selicens11 小时前
git批量删除本地多余分支
前端·git·后端
闲云一鹤1 天前
Git LFS 扫盲教程 - 你不会还在用 Git 管理大文件吧?
前端·git·前端工程化
vibecoding日记4 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记5 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger6 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP6 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思7 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享7 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立7 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible