美文网首页
git 获取ssh、本地切换用户和rebase

git 获取ssh、本地切换用户和rebase

作者: 看到这朵小fa了么 | 来源:发表于2020-10-29 12:01 被阅读0次

获取ssh

vim ~/.ssh/id_rsa.pub

本地切换用户

1、查看当前git用户名和邮箱:

git config user.name
git config user.email

2、切换git用户名和邮箱

git config --global user.name "your_name"'
git config --global user.email "you_email"

3、仓库合并
两个独立仓库合并被拒绝使用此命令可以合并本地和远程仓库:

git pull origin master --allow-unrelated-histories

4、远端覆盖本地

git reset --hard origin/master

5、取消暂存区的更改

git reset HEAD

6、推送修改到远端

// 当前分支修改提交到暂存区
git add .
// 当前分支修改提交到本地仓库
git commit -m "提交说明"
// 当前分支本地修改提交到当前分支的远端仓库
git push
// 拉取远端仓库保证代码一致
git pull

7、删除分支

// 删除本地分支
git branch -d target-branch
// 强制删除本地分支
git branch -D tatget-branch
// 删除远端分支
git push origin --delete tatget-branch

git rebase和merge

之前一直是用的merge,现在用rebase了,记录一下理解,也是翻阅了很多资料来的

git rebase

变基,主分支跟开始拉分支的时候已经不同,当前的分支需要同步当前主分支的其他分支的commit,解决方式是将主分支的变更映射到当前分支,rebase将当前分支的不同点追加到主分支上,提交变基的更改,这样当前的分支就是相当于从现在的主分支拉下来的,这样合并的时候就不会用冲突,那么主分支不会记录合并的过程,也不会记录在分支上的行为,无法进行回退,如果不想保留在分支上的各种提交的操作,可以用rebase -i来保证主分支的clean。

git rebase target

首先确认当前分支是否需要rebase,查看提交的merge request是否有冲突(gitHub上面是 pull request),如有则进行下面的步骤:
1、首先切换到目标分支,master为例,git pull/push保证本地和远端代码一致
2、切换到dev分支进行rebase变基处理

git checkout dev
git rebase master

3、这个时候会有冲突,则解决冲突,解决完成后用添加暂存,用git rebase --continue继续解决冲突

git add .
git rebase --continue

4、冲突解决完后,会冲变基状态会到分支状态,直接进行git push -f可以同步到远端

git push -f

5、去request上查看冲突已经解决

git rebase -i

在请求合并的分支上有多次提交想要变为一次
1、首先要确认要将提交都合并到哪次,我是通过git log查看,结合在merge request上提交的commit id来确认,只要合并到第一次commit的前一次就可以了,在日志后面的分支变化的那种commit是不算的,自己判断下,太难了。或者可以合并到提交的最新的一次commit id 然后再将最新的两次和为一次。
2、确认了commit_id后,进行合并,或者通过合并前几次的提交(但是一般不好确定)

git rebase -i commit_id 
git rebase -i HEAD~3 // 这里是几就合并前几次的提交,这里是前三次

3、提交后会弹出文本编辑器,点i进入编辑模式,将除了第一个之外的pick都改为s,esc退出编辑模式,通过:wq保存并退出。
4、这时候如果出现冲突就进行解决,使用git add .和git rebase --continue两个命令,直到没有冲突
5、完成后会弹出编辑日志的文本编辑器,将不需要的提交日志删除,在非编辑状态双击d即可删除整行,修改完成后,同样:wq保存并退出
6、非常重要的操作,这时候从变基状态退回了分支状态,但是分支处表示需要拉取和推送,这个时候直接用强制推送,将我们的合并操作强制同步到远端。

git push -f

7、查看merge request的提交已经合并为一次,在rebase的时候想要退回到原来的状态可以用 git rebase --abort。

git merge

合并,把当前的分支合并到主分支为例,会把主分支拉到本地和当前的分支进行合并,有 冲突则需要解决冲突,解决冲突后进行合并,会产生一个合并冲突的commit,如果没有冲突则直接合并成功,通过merge进行合并时会在主分支上诚实的记录着你在当前分支的各种git操作,所以你可以通过主分支进行回退的操作。
1、保证分支远端和本地一致后进行分支合并,切换到目标分支,这里是dev合并到master则切换到master

git pull
git checkout master

2、将dev合并到master,这里将dev的代码拉到本地与 master进行本地仓库的合并,如果有冲突则解决,解决完成后进行推送即可(当前已经在master了,解决冲突后直接推送到远端即可)

git merge dev
git push

相关文章

  • git 获取ssh、本地切换用户和rebase

    获取ssh 本地切换用户 1、查看当前git用户名和邮箱: 2、切换git用户名和邮箱 3、仓库合并两个独立仓库合...

  • git命令整理

    git切换分支: 切换master分支: git强制覆盖本地文件: git切换用户: 切换邮箱: 查看当前用户和邮...

  • Git使用笔记

    全局Git配置 查看用户名和邮箱 修改用户名和邮箱 生成SSH公钥 重置git本地密码

  • git本地合并分支

    git 本地合并分支 一、git rebase 二、git merge

  • Git常用命令

    生成密钥 ssh-keygen 检测是否成功 $ ssh -T git@github.com 本地配置用户名和邮箱...

  • git常用命令整理

    上来就干货! 获取远程库与本地同步:git pull --rebase origin master 添加文件夹下所...

  • 本地查看配置及生成ssh

    本地生成 ssh key查看本地ssh配置git config --global -l修改ssh配置git con...

  • Git 常用指令

    git pull --rebase git reset --hard origin/master(如果本地版本领先...

  • Linux搭建Git服务器

    创建git组,创建git用户,修改git密码 配置环境变量 创建仓库 允许SSH免密登录 本地生成公钥和私钥 下载...

  • 修复rebase删掉的代码

    问题 rebase时如果出现冲突,使用$git rebase --skip会删掉本地的commit 如何恢复 在当...

网友评论

      本文标题:git 获取ssh、本地切换用户和rebase

      本文链接:https://www.haomeiwen.com/subject/sddkvktx.html