日常开发中,我是如何使用git的

日常开发中,我是如何使用git的

使用git也挺长一段时间了, 突然心血来潮整理下日常开发工作中,我都用到了那些指令!!!

日常开发中,我是如何使用git的

1. git 配置

1.1 git下载

git官方下载地址

1.2 配置远程(gitlab)

首先全局配置git的基本信息,配置用户名和邮箱即可

git conf编辑器ig --global user.name "你的用户名"

git config --global user.email "你的邮箱地址"

如果要在某个特定的项目中使用其他名字、gitlab官网邮箱,去掉 --global 重新配置即可gitlab登录,新的设定保存在当前项目的 .git/config 文件里。

配置后,打开终端,执行ssh-keygen -t ras -C "全局配置的邮箱地址",执行成功后,执行~/.ssh切换到该目录下,复制id_rsa.pub

cat ~/.ssh/id_rsa.pub #查看公钥, id_rsa 没有pub 后缀的是秘钥,也叫私钥

日常开发中,我是如何使用git的

然后将这一长串内容添加到你的gitlab上面就编辑器手机版可以了

2. git工作流和基本操作

2.1 git的工作流

日常工作中,俺一般进行开发的时候,一般是这么个gitlab官网过程:

  • ① 克隆 git 远程仓库的代码到编辑器手机版本地。
  • ② 在克隆的资源上gitlab使用教程进行操作。
  • ③ 如果其他人修改了,更新本地代码。
  • ④ 在提交代码前查看自己的修改。
  • ⑤ 提交修改。
  • ⑥ 在修改完成后,如果编辑器手机版发现错误,可以撤回提交并再次修改并提工作流交。

日常开发中,我是如何使用git的

2.2 gitgitlab设置中文的基本操作

对于刚刚工作时的开发流程,我一般执行下面的git操作:

日常开发中,我是如何使用git的

工作流引擎免俗的简单介绍一下专有名词:

workspace:工作区,平常开发的地方,日常开发就是对工作区的文件进行操作;

Index:暂gitlab官网存区,git add 将工作区代码暂时放置此处;

Repository:本地仓库,git commit ,将暂存区代码放到本地仓库

Remote:远程仓库,托管代码的服务器,如gi工作流程图制作方法tgiteelab,编辑器小说github这类,本地仓库代码执行git push后,推送到远端

3. git常见指令

下面是我在日常开发过程中,常常用到的git指令,自我感觉涵盖了git的大多数常规场景! 带的都是俺使用率最多的!!!

日常开发中,我是如何使用git的

git add

添加文工作流程怎么写件到暂存区

// 添加某个文件到暂存区,后面可以跟多个文件,以空格区分
git add xxx
//  添加当前更改的所有文件到暂存区。
git add .

gi服务器内存条可以用在台式机上吗t commit

//  提交暂存的更改,并记录下备注
git commit -m "xxxx"
// 等同于 git add . && git commit -m
git commit -am
//  对最近一次的提交的信息进行修改
// 此操作会修改commit的hash值,需要强推,谨慎使用,不然可能会被打
// 我一般会用来修改上次的commit信息,或者给上次的提交添加一些改动
git commit --amend
// or 
// 对上一条提交的信息的描述进行修改
git commit --amend -m "xxxx"

git pull

//  从远程仓库拉取代码并合并到本地,可简写为 git pull 等同于 git fetch && git merge
git pull <远程主机名> <远程分支名>:<本地分支名>
// 使用rebase的模式进行合并
git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

git pull我一般会使用两种场景:工作流程图模板样式

  1. git pull 快速拉取和当前分支名一样的远程分支,为了确保当前代码最新。 如我在master分支,然后工作流程组织我git pull,确保我master代码最新
  2. 我在test-k8s分支,我git pull我的开发主分支,快速合并,然后推 我的test-k8s本地分支到远端

注意:如果在快速合并时,不想有一条无服务器地址效的mr记录,可以使用rebgit命令ase模式,,但是这个需要全小组的人一起使用,在我司编辑器,我们在对开发主分支以及master分支时合并时,我们都是使用的rebase方式来进行操作,以避免mr无效记录

git push

//  推送代码到远端
git push
//  快速强推指令
// 谨慎使用啊
git push <远程主机名> <想要强推的分支>:<被强推的分支> -f

强推操作如: git push origin master:dev-k8s -f,使用master快速强推dev-k8s分支,使用该指令前,一定要小心、工作流小心再小工作流是什么意思心,不到万不得已,不要使用;使用前一定要同步到全组人员,不然容易被喷,老can的那种

日常开发中,我是如何使用git的

git branch

// 新建本地分支,但不切换
git branch <branch-name>
// 查看本地分支
git branch
// 查看远程分支
git branch -r
// 查看本地和远程分支
git branch -a
//  删除本地分支
git branch -D <branch-nane>
// 重新命名分支
git branch -m <old-branch-name> <new-branch-name>

接下来的一些指令,感觉和上面直接放出来,不太合适,所工作流程表格模板以都以demo的形式,搞一服务器系统

日常开发中,我是如何使用git的

git rebase

没有找到放 的地方,但是十分推荐,我在gitlab官网日常使用中,非常多,同时,感觉需要简单记录总结一下,不然直接服务器怎么搭建开摆,感觉有点不太好

前面在git pull的时候,也有@rGitebase,这里才是正主,但也不会过多介绍

rebase 翻译为变基,他的作用和 merge 很相似,用于gitlab官网把一个分支的修改合并到当前分支上。

如下图所示,下图介绍了经过 rebase 后提交历史的变化情况。

日常开发中,我是如何使用git的
通过这个图,我们可以看到,我们在原来的位置拉出一个开发分支,我们在开发的同时,主分支更新了,这个时候,我们就可以使用rebase,用你的开发主分支rebase项目主分支maste服务器操作系统r来确保你的开发主分支和master位于同一条线

git merge 和 git rebase 的区别工作流程图制作方法

git merge 在不是 fast-forwa工作流rd(快速合并)的情况下,会产生一条额外的无效mr合并记录,类似 Merge branch 'xxx' into 'xxx' 的一条提交工作流程组织信息。

日常开发中,我是如何使用git的

另外,在解决冲突的工作流程图制作方法时候,用 merge 只需要解决一次冲突即可,简单粗暴,而用 rebase 的时候 ,需要依次解决每次的冲突,才可服务器租用以提交。 因为rebase的特性,我们在日常使用rebase的时候,在gitlab搭建版本上线的时候,都是将当前gitlab使用教程开发主分支,merge request到开发主分支master的时候,都会squash起来,避免多次解决无效冲突。 本来想直接放出来rebase的编辑器指令,但感觉还是先简单说一下,在放指令比较好一点点

git rebase 具体使用

git rebase的基本操作,不编辑器下载带入场景介绍了,看下感觉就ok了!

// 继续rebase操作
git rebase --continue
// 跳过此次rebase操作
git rebase --skip
// 退出rebase操作
git rebase --abort

下面结合小demo,在具体场景中,来实现几个编辑器哪个好用rebase操作

想要合giti轮胎并压缩无效工作流程图制作方法提交记录:gitlab设置中文开发中,因为自己的憨憨操作,发现有很多 垃圾提交记录,然后因为你是一位服务器怎么搭建有志人士想要合并这些无效提交记录,这个时候,rebase就是你实现远大抱负的工具 。使用 rebase 的交互式模式把已经发生的多次提交压缩成一giti次提交,得到了一个干净的提交历史,例如某个分支的提交历史情况如下:

日常开发中,我是如何使用git的

进入交互式模式的方giti轮胎式是执行:

git rebase -i <base-commit>

base-commit 就是某条记录编辑器哪个好用hash,基于这条记录进行 rebase 的操作,如俺提供的编辑器demo编辑器怎么打开,我需要把最后的一个提交对象( 3bfbc96 )之前的提交压缩成一次提交,我们需要执行的命令格式是:

git rebase -i 3bfbc96

此时会进入一个服务器系统 vim 的交互式页面,编辑器列出的信息像下列这样。

日常开发中,我是如何使用git的

想要合并这一堆更改,我们要使用 Squagitlab官网sh 策略进行合并,即把当前的 commit 和它的上一个 commit 内容进行合并, 大概可以表示为下面这样,在交互模式的 rebase 下编辑器软件,至少保留一个 pick,否则命令会执行失败。

pick  ... ...
s     ... ...
s     ... ...
s     ... ...
s     ... ...
s     ... ...
s     ... ...

修改文件后 按下 : 然后 wq 保存退出,此时又会弹出一个编辑页面,这个页面是用来编辑提交的信息,修改为 feat: 0.01版本完编辑器哪个好用成,增加了hooks和两个组件

日常开发中,我是如何使用git的

git cherry-pick

git cherry-pick,它会获取某一个分支的提交记录,并作为一个新的提交引入到你当前cherry-pick的分支上。

举个 ,以下有三条分支,test1 和 test2 都是基于 master 切出的两条开发分支,对应的分支 git log --oneline 记录如下

test1:

日常开发中,我是如何使用git的

test2:

日常开发中,我是如何使用git的

master 分支的提交如下

日常开发中,我是如何使用git的

现在 master编辑器哪个好用 只需要 test1分支的提交记录为 测试1 和test2分支的提交记录为 测试2编辑器135修改,并不考虑其他东东。这个时GitLab候,我就会使用 cherry-pick 指令了。

语法: git cherr工作流是什么意思y-pick [commit-hash]

commit-hash 表示的是某次 commit 的 hgitlab登录ash 值。 为了实现,刚刚提到的场景,偶们需要分别依次执行以下工作流程图两条指令:

git cherry-pick 11a65ab

git cherry-pick c0b47c6

过程中,如果出现冲突,解决冲突后 进行 git add编辑器英语编辑器和ide的区别着执行 git cherry-picgitlab安装k -编辑器小说-continue,最后,master 上的提交如下

日常开发中,我是如何使用git的

如果需要多个 cherry-pick 需要同步到gitlab是干什么用的目标分支,可以简写为

git cherry-pick [first-commit-hash]...[last-commit-hash]

这是一个左开右gitlab拉取代码到本地闭的区间,也就时说 first-commit-hash这条提交记录不会被合并过去,如果需要左、编辑器怎么打开右都闭,需要使用

git cherry-pick [first-commit-hash]^...[last-commit-hash]

git revert

git revert 撤销某次操作,此操作不会修改原本的提交记录,而是会新增一条提交记录来抵消某次操作。

语法:

// 一般commit
git revert <commit-id> 
// merge的commit
git revert <commit-id> -m 

下面就用一个小 来理解一下这个命令。

如下图所示,假设被红框框起来的地方不想要了,并且在它的提交之后,又进行了2次提交,其中包含了其它人的提交。

日常开发中,我是如何使用git的

此时想把红框内提交干掉,我们可以执行 git revert b37bdcd,执行操作后,再打开查看日志,如下图所示,可服务器怎么搭建以看到是新增了一条 commit 记录,这个 commit 的产生的 msg 是自动生成的,Revergithub永久回家地址t 开头,后面跟撤回的 commit-msg 信息 之前的 commit 记录并没有消失,此时也达到了代码回退的效果

日常开发中,我是如何使用git的

git revert 也可以回滚多次的提交

// 一个前开后闭区间,即不包括 commit1 ,但包括 commit2 
git revert [commit-id1] [commit-id2]

git reset

git reset <hash-id>

日常开发中,我是如何使用git的

想将代码回归到红色框框的状giti轮胎态,并且在git log不想保留记录,执行git reset 7eb7891

日常开发中,我是如何使用git的

//我一般还会使用reset同步本地分支为最新远程分支
    git reset --hard origin/dev-k8s

git stash

当你在某一分支开发到一半,突然有别的事情需要切换到别的分支,这个时候,你就需要使用暂存指令了!

//把本地的改动暂存起来
git stash
// 应用最近一次暂存的修改,并删除暂存的记录
git stash pop

4. 在vscode中使用git

gitlens先下载一下,墙裂推荐 用一张图来展编辑器下载示下在vscode中,如何使用方便快速的git

日常开发中,我是如何使用git的
这里上边对应着:

上边儿的几个按钮:用来进行暂存和撤销 下边儿几个,自己点一下,就知道了,我一般不怎么使用

日常开发中,我是如何使用git的

5.总结

以上就是我工作中经常用到的git指令了,特别需要注意的,凡是涉及强推操作,都要慎重、并且在强推之前,一定要同步给自己的服务器系统开发小伙伴,不然很有可能会被群起而攻之,成为众人的diss对象!!

如果有不对的地方,欢迎大佬指gitlab设置中文正!

日常开发中,我是如何使用git的

如果觉得可以的话,可以评论、点赞鼓励 ,你的鼓励,是我继续下去的动力giti

Thanks♪(・・)ノ

日常开发中,我是如何使用git的

评论

发表回复