前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git常规使用备忘录

Git常规使用备忘录

作者头像
JavaQ
发布2022-03-30 14:40:06
2940
发布2022-03-30 14:40:06
举报
文章被收录于专栏:JavaQJavaQ

git安装

1.下载后安装

以Windows系统为例,下载地址:http://git-scm.com/download/win 自动下载

2.运行Git Bash

git config --global user.name xxx

git config --global user.email xxx@huifu.com

3.生成SSH公钥

ssh-keygen #一路回车就行

4.配置公钥到gitlab

C:\Users\admin\.ssh路径下,记事本打开id_rsa.pub,拷贝内容到gitlab上配置

5.eclipse导入代码

file -> import -> git -> Projects from Git #不需要填写账号密码

git配置

  • 配置全局用户名和邮箱

git config --global user.name "abc"

git config --global user.email "abc@163.com"

  • 配置局部用户名和邮箱

git config user.name "abc"

git config user.email "abc@163.com"

gitignore

添加.gitignore后,重新进行版本控制

代码语言:javascript
复制
git rm -r --cached .git add .git commit -m "update .gitignore"

git提交变更操作

1.拉取最新代码

git pull --rebase

2.将新增/修改的文件加入暂存区

方式1:git add 文件名

方式2:git add -p  #对比选择变更的代码

3.提交本次变更到本地仓库

git commit -m '注释'

4.推送本次变更到远程仓库

方式1:git push origin 分支名  

方式2:git push  #省略[origin 分支名]参数,默认会将当前分支提交到远程对应分支

git 撤销操作

  • 未执行add操作的撤销

git checkout xxx

  • 执行add操作后,未执行commit的撤销

git reset HEAD xxx

  • commit后撤销
代码语言:javascript
复制
git reset --soft HEAD^ // 撤销commit回到前一个版本,不撤销git add,不恢复变更git reset --soft HEAD~1 // 撤销commit回到前一个版本,不撤销git add,不恢复变更git reset --soft HEAD~2 // 撤销commit回到前两个版本,不撤销git add,不恢复变更git reset --mixed HEAD^ // 撤销commit回到前一个版本,并撤销git add,不恢复变更git reset --hard HEAD^ // 撤销commit回到前一个版本,撤销git add,恢复变更
  • 强制回退远程版本
代码语言:javascript
复制
git log #查看本地提交记录,找到要回退的commit_idgit reset --hard commit_id #强制回退到某次提交git push -f origin 分支名 #强制推送到远程仓库
  • 回退某次commit

使用git revert 逆向某次操作,对某次commit进行反向操作:

代码语言:javascript
复制
git revert -n commit_id  //逆向某次commit操作,如果有冲突解决冲突,使用git add添加修改,使用git commit提交本次修改git push

替换上一次提交的信息

git commit --amend -m "Fixes bug"

撤销当前分支的变化

在当前分支修改并做了几次提交,发现不应该在当前分支做修改,应该新建分支修改并提交。

  1. 在当前已修改过的分支上新建一个分支,指向当前最新的提交,注意,这时依然停留在当前分支。 git branch xxx  #xxx代表分支名称
  2. 撤销当前分支到修改提交之前的状态 参考上面的撤销操作
  3. 切换到新创建的分支

git checkout xxx  #xxx代表分支名称

从暂存区撤销文件

如果不小心把一个文件添加到暂存区,可以用下面的命令撤销。

git rm --cached [filename]

上面的命令不影响已经提交的内容。

撤销工作区的文件修改

如果工作区的某个文件被改乱了,但还没有提交,可以用git checkout命令找回本次修改之前的文件:

git checkout -- [filename]

它的原理是先找暂存区,如果该文件有暂存的版本,则恢复该版本,否则恢复上一次提交的版本。

注意,工作区的文件变化一旦被撤销,就无法找回了。

撤销提交

提交代码以后,意识到这个提交有问题,应该撤销掉,执行如下命令撤销:

git revert HEAD

抵消掉上一次提交导致的所有变化,它不会改变过去的历史,恢复内容到上一次提交,但是默认会保留本次的提交记录,同时会产生一次revert commit记录。

git revert命令还有两个参数:

--no-edit:执行时不打开默认编辑器,直接使用 Git 自动生成的提交信息。

--no-commit:只抵消暂存区和工作区的文件变化,不产生新的提交。

代码合并

以下操作将master主干合并到feature分支

1.拉取最新代码

在当前分支拉取最新代码:git pull --rebase

如果有冲突使用以下步骤解决冲突:

1.1 手动解决冲突

1.2 git add filename

1.3 git commit –m 'xxxxx'

1.4 git status //根据提示继续操作

2.切换到master主干

git checkout master

git pull --rebase

3.切回feature分支

git checkout feature-xxx

4.合并master代码

git merge master

有冲突手动解决冲突,解决办法同上

5.推送到远程仓库

git push

hotfix操作

步骤:

1.拉取develop分支代码到最新

2.拉取master分支代码到最新

3.git flow hotfix start 临时分支名

4.紧急修改操作

5.git add

6.git commit

7.git flow hotfix finish 临时分支名

8.编辑提交的信息

9.分别提交到master和develop

feature分支操作

1. 开始一个新功能:

git flow feature start xxxx

2. 提交这个功能到远程库:

git flow feature publish xxxx

3. 完成功能,合并到develop:

git flow feature finish xxxx

4. 记得删除远程仓库里的分支:

git push origin :xxxx

A分支的部分提交应用到B分支

git cherry-pick <commitHash> #commitHash来自git log查看

使用步骤:

1.在A分支使用git log查看需要用到的commit_id,例如abc

2.切换到B分支,使用git cherry-pick abc

cherry-pick也支持将多个部分提交应用到B分支,例如:

git cherry-pick <commitHash1> <commitHash2>  <commitHash3> 

但是要保证先后顺序,即提交commitHash1必须早于提交commitHash2

也支持区间,例如:

git cherry-pick <commitHash1> <commitHash2>

但是要保证先后顺序,即提交commitHash1必须早于提交commitHash2

若过程中发生冲突,解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让Cherry pick过程继续执行:

git cherry-pick --continue

当然也可以在发生代码冲突后,放弃合并,回到操作前的样子,执行命令:

git cherry-pick --abort 

学之多,而后知之少!朋友们点【在看】是我持续更新的最大动力!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档