您现在的位置是:首页 >学无止境 >git简单使用网站首页学无止境

git简单使用

巨噬细胞ps 2023-05-27 08:00:03
简介git简单使用

1.配置

设置用+密码
git config --global --list //查看本地配置
git config --global user.name “…”
git config --global user.email “…”
配置秘钥
ssh-keygen -t rsa -C “邮箱”
会生成id_rsa和id_rsa.pub两个文件,其中秘钥在id_rsa.pub文件中,通过文本方式打开将秘钥添加到仓库的配置中即可执行git指令相关操作。

2.三大区

工作区:能看见操作的区域
暂存区:add之后数据暂存的区域
版本库:commit后存放数据的区域,push时即将该区域的数据同步到远程仓库

3.基本指令

git status:git status 查看当前分支状态
git log:查看commit的log
git reflog:查看所有分支的log,包括已删除的和reset的
git clone:克隆远程仓库到本地
git fetch:更新git remote 中所有的远程仓库所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地
git fetch <远程主机名> <分支名> //取回特定分支
eg:git fetch origin master
git pull:git pull = git fetch + git merge
将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:git pull <远程主机名> <远程分支名>:<本地分支名>
如果远程分支是与当前分支合并,则冒号后面的部分可以省略:git pull origin next
branch
git branch //查看本地所有分支 git branch -a //查看远程所有分支
git branch -d dev //删除dev分支 git branch -D dev //强制删
checkout:
git checkout -b dev//创建并切换到dev分支
git checkout dev//切换到dev分支

4.stash指令

不想提交当前的修改,但又需要切换到其他分支解决其他bug,可使用stash把当前的修改保存起来不提交,解决其他问题后再恢复该修改。不局限于一个分支,可夸分支操作。
git stash//保存当前现场的修改
git stash save “…”//保存当前现场的修改,并命名为…
git stash list//查看所有stash
git stash apply//默认恢复最新一次的stash,但不删除该stash
git stash apply stash@{n}//恢复某个stash
git stash pop//恢复某个stash,并删除,默认顶部的
git stash drop stash@{n}//删除某个stash
git stash clear//删除所有的stash

5.cherry-pick

将一个分支移到另一个分支之下
git cherry-pick commitHash//将指定的提交移到当前分支
git cherry-pick dev_name//将制定的分支移到当前分支
git cherry-pick HashA HashB//将多个提交移到当前分支
如果操作过程中发生代码冲突,Cherry pick 会停下来,让用户决定如何继续操作。
(1)–continue
用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。
$ git cherry-pick --continue
(2)–abort
发生代码冲突后,放弃合并,回到操作前的样子。
(3)–quit
发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。

6.rebase

改变一个分支的父节点
两个开发从仓库一个节点拉取,开发A先完成并合并,开发B(dev分支)后完成再合并;
(1):B先拉取最新的代码到本地master;
(2):在dev分支上:git rebase master//变基;
(3):然后可在dev分支上进行相关commit push操作;
(4):切回master分支后可进行一次快进合并(git merge dev),保证master分支为最新内容;
在这里插入图片描述

7.submodule

将一个仓库的代码作为另一个项目的子模块
git submodule add git的路径地址

8.reset

git reset [–soft | --mixed | --hard] HEAD
–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
–soft用于重置版本库内的信息,工作区的改动不变
–hard回退所有,包括工作区的内容
git reset --hard HEAD//撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。HEAD^表示上个版本,HEAD~n表示前面n个版本,
revert
git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。