新人记录git提交代码常用命令

git拉取指定分支

命令git clone -b 分支名 git地址 例:

git clone -b develop http://192.168.xx.xx/test.git

git提交指定分支

# 添加本地需要提交的代码
git add .
# 提交代码至本地仓库,并提交修改内容(多行)
git commit -m "[FIX] 标题
Test: xxx
Detail: 修改详情"
# 提交代码至远程分支仓库 git push origin [branch name]
git push origin develop

git查看当前分支/查看所有分支

git branch
git branch -a

git查看提交日志记录

git log

git 新建本地分支

# git branch [branch name]
git branch developer

切换至新分支

# git switch [branch name]
​
git switch developer

# git checkout [branch name]
git checkout developer

创建 + 切换分支

# git checkout -b [branch name]
git checkout -b developer

将新分支推送至github

# git push origin [branch name]
git push origin developer

删除本地分支

# git branch -d [branch name]
git branch -d developer

删除github远程分支

# git push origin :[branch name]
# 分支名前的冒号代表删除
git push origin :developer

git标签(tag)相关操作

# 创建标签
# -a 创建指令,后面是标签名称
# -m 添加备注,后面是备注内容
git tag -a V1.0 -m "正式版本"

# 查看标签
git tag

# 删除标签
# -d 删除指令,后面是标签名称
git tag -d V1.0

# 给某个指定的commit版本打标签
git tag -a V1.0 9d987d9b81 -m "正式版本"

# 标签同步到远程服务器
git push origin V1.0

# 推送本地所有tag
git push origin --tags

# 查看远程服务器标签
git ls-remote --tags

# 检出标签
git checkout V1.0

回滚版本Reset

#git reset用于回退版本,可以遗弃不再使用的提交
#执行遗弃时,需要根据影响的范围而指定不同的参数,可以指定是否复原索引或工作树内容

# 回退到上个版本呢
git reset --hard HEAD^
# 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD~3
# 查看commit 的sha 码
git log
# 显示版本差异
git show
# 回退到指定的commit 的sha 码 前7位
git reset --hard xxxxxxxx

#-- 本地分支回滚到指定版本
git reset --hard <commit ID号>
#-- 强制推送到远程分支(有风险)
git push -f origin <branch name>

回滚版本Revert

#git revert在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化,不会改变过去的历史,主要是用于安全地取消过去发布的提交

#用法如下:
git revert <commit_id> 
#如果撤销前一个版本,可以通过如下命令:
git revert HEAD 
#撤销前前一次,如下:
git revert HEAD^ 

修改上一次commit 信息

git commit --amend

修改某一次commit信息

# 1. 回退到xxxx编号次的状态
git rebase -i xxxx
# 2. 将xxxx对应的那一条中的“pick”,修改为“edit”,并保存
# 3. 更新提交信息
git commit --amend
# 4. 恢复所有提交记录
git rebase --continue
# 5. 检查状态是否正确
git log

合并某几次的commit信息

# 1. 回退到xxxx编号次的状态
git rebase -i xxxx
# 2. 将xxxx对应的那一条中的“pick”,修改为“squash”,并保存
     #pick 的意思是要会执行这个commit
     #squash 的意思是这个commit会被合并到前一个commit
# 3. 检查状态是否正确
git log
git status

git rebase 合并

rebase详解

git rebase 和 git merge优缺点分别是什么,怎么用

使用分支——Git Merge命令

# git 本地合并分支
一个最简单的模型,从 master 分支 checkout 出几个本地 feature 分支,你或者你的团队在协同开发某个 feature-a 时,可能别人已把 feature-b 的代码 merge 回 master 了,所以应该及时将 master 的改动 rebase 到你的本地分支,顺便 fix conflicts。即: 
git switch feature-a
git rebase master
fix conflicts...
git rebase --continue

# git 远程分支合并
git switch master
git merge --no-ff -m "Merge branch 'feature-a'" feature-a

# --no-ff 表示不执行快速合并,没有则表示快速合并
下面来展示如何进行快进合并。下面的命令会先创建一个新分支,在新分支上进行两次提交,然后用快进合并把新分支合并回`main`分支。
# Start a new feature
git checkout -b new-feature main
# Edit some files
git add <file>
git commit -m "Start a feature"
# Edit some files
git add <file>
git commit -m "Finish a feature"
# Merge in the new-feature branch
git checkout main
git merge new-feature
git branch -d new-feature

git添加子仓库

 git submodule add http://git.xx.com/library.git

git 更新子仓库

git submodule init
git submodule update
或
git submodule update --init --recursive

git 子仓库切换分支

cd submodule_directory
git checkout v1.0
cd ..
git add submodule_directory
git commit -m "moved submodule to v1.0"
git push

git 撤销修改

1.在工作区修改,但并未提交到暂存区(即并没有add)。
对于单个文件的撤销修改而言,使用下面方法。
git checkout -- 文件名

若想撤销工作区中所有文件的修改,则
git checkout .

注意:git chekcout 是让文件回到最近一次该文件git commit或git add时的状态。
2.工作区修改了之后,提交到了暂存区(即add),如何撤销修改?这里分为两种情况来说吧。
	(1).对于该文件来说,在当前分支上,你还没有commit过一次;
		使用 git rm --cached 文件名 命令来放弃该文件的暂存
	(2).如果你已经有了commit的记录,撤销文件
		则先:git reset HEAD file 让该文件回到工作区的状态。
		然后:git chekcout -- file 即可

commit 格式

<type> <id> <subject>

type类型

  • Feature: 新增 feature

  • Fix: 修复 bug

  • Docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE等等

  • Style: 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑

  • Refactor: 代码重构,没有加新功能或者修复 bug

  • Preformance: 优化相关,比如提升性能、体验

  • Test: 测试用例,包括单元测试、集成测试等

  • Chore: 改变构建流程、或者增加依赖库、工具等

  • Revert: 回滚到上一个版本

  • WIP: work in porcess ,正在开发中

举例:

commit 8231e63e12fed126a877f9d4faee96449eeb3288 (HEAD -> master, origin/master)
Author: 咸鱼 <xianyu@163.com>
Date:   Tue Mar 22 17:39:04 2022 +0800

    Fix: JiraID:BA100-497 xxxxxxxxxxxxxxxxxxxxx    
    (必须要有空行)
    Cause: XXXXXXXXXXXXXXX
    Solution: AAAAAAAAAAAAAA

Author 规范

“花名” <公司邮箱>

修改方式
git config  --global user.name "咸鱼"
git config  --global user.email "xianyu@163.com"
查看方式
git config --list
git config user.name
git config user.email

配置ssh

  1. 运行git bash,使用如下命令生成ssh公钥和私钥,一路回车下去

    #邮箱是你gitlab绑定的邮箱,一定要带引号
    ssh-keygen -t rsa -C 'xianyu@163.com' 

  2. 根据文件提示找到公钥文件,vi ~/.ssh/id_rsa.pub,拷贝里面的内容

  3. 在gitlab个人属性中添加ssh keys

git 命令参考网址

git pull命令 - Git教程 (yiibai.com)

git正常使用流程

  1. 克隆仓库工程 git clone xxx

  2. 建立一个本地开发分支 git checkout/switch develop

  3. 开发完成合并至 xxx 分支 git rebase

  4. 在本地xxx分支提交至远程分支 git push

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值