Git分支切换

每次开发新功能,需要新开分支进行开发

```

1、先检查当前工作区是否干净

git status     以下结果表示是干净的

 

 

2、开发新功能,新建分支进行开发,开发完毕后,再合并到 master 主干

git checkout -b login

 

3、检查当前所处分支

git branch

 

4、提交代码到master分支

4.1 先 git add . 到仓库

4.2 git commit -m "登录功能"    提交代码到本地分支

4.3 git status 检查状态

4.4 git branch 检查代码提交到哪个分支了

4.5 git checkout master 切换到master分支

4.6 git merge login 合并 login分支的代码到master

4.7 git push 将本地master代码推到码云

```

 

5、将本地的 login 分支提交到码云

```

git checkout login

git branch 检查分支状态

git push -u origin login  将当前所处的分支提交到远端的login分支

```

 

6、拉去远程代码到本地

```

git pull origin health_mobile(远程分支名称)

```

 

初始化项目

1、先生成SSH密钥

ssh-keygen -t ed25519 -C "邮箱"   

 

2、查看SSH密钥,并在Gitee添加

cat ~/.ssh/id_ed25519.pub  

 

3、检查SSH状态

ssh -T git@gitee.com  

 

4、初始化用户

git config --global user.name "DeyouKong"   

git config --global user.email "1929765936@qq.com"

 

5、检查git仓库状态(需要切换到项目根目录)

git status

 

6、将项目与gitee关联

git remote add origin https://gitee.com/deyoukong/vue-shop.git

 

7、将本地代码提交到码云

git push -u origin master

 

 

当前分支为master,代码写在master,需要迁移到 user 分支

git checkout -b user ( user 分支不存在

 

git checkout user(user 分支已存在)

 

解决冲突:

1、解决方法一

git push  远程仓库地址 本地分支:远程分支 --force:强行推送到远程仓库,即使有冲突。

注:强行推送会替换远程仓库中的代码,导致远程仓库中的代码丢失,只有在确认代码无误后使用此方法解决冲突。

 

2、解决方法二

git pull 远程仓库地址 远程分支:取回远程仓库的变化,并与本地分支合并。

推荐使用这种方法,代码不会丢失,而是直接合并到本地。

 

 修改代码再次push:

 

 

3、解决方法三

每次修改或提交代码之前先pull一下远程仓库的代码!

每次修改或提交代码之前先pull一下远程仓库的代码!

每次修改或提交代码之前先pull一下远程仓库的代码!

 

代码回退

1、git revert

git revert 001c67(001c67是你要回退到指定历史的版本号)

然后push到远程指定分支上:

git push origin master

 

git revert是用一个新commit来消除一个历史commit所做的修改,revert 之后你的本地代码会回滚到指定的历史版本。也就是说revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的。

 

2、git reset

git reset --hard 001c67(你要干掉的commit的版本号)

 

       这个命令表示:彻底回退到某个版本,本地的源码也会变为上一个版本的内容---------审用

git reset --mixed(默认方式):

       git reset --mixed,当它回退到某个版本时,只保留源码,回退commit和index信息

git reset --soft:

      它回退到某个版本时,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

 

简单总结一下,其实就是三个不同的恢复等级,--soft 、--mixed以及--hard。使用--soft就仅仅将头指针恢复,已经add的缓存以及工作空间的所有东西都不变。如果使用--mixed,就是将头指针恢复掉,已经add的缓存会丢失掉,工作空间的代码什么的是不变的。如果使用--hard,那么一切就全都恢复了。

 

git reset比较常用的场景:合并最近几个commit:

比如我提交了5个commit,这时候我想把这5个commit作为一个commit提交到远程分支,可以先把那5个commit撤下来,如下:
git reset HEAD~5

上面命令是指撤下最近的5个commit, 撤下来以后,这5个commit相关的文件都在工作台了,只需要重新add,commit,即可。
注意: 如果commit已经push到远程分支了,这时候我们撤下来再push会失败,需要加上-f,如:


git push -f origin xxx_dev

 

 

修改 .gitignore 文件后使其生效:

1).gitignore规则的语法错误
排查语法问题,修正错误的语法。

2)git缓存
使用git清除本地缓存,然后提交。命令如下:

git rm -r --cached . # 删除缓存
git add -A # 重新添加所有文件,等价写法:git add .
git commit -m "update" # 重新提交

 

posted @ 2021-10-29 22:14  DeyouKong  阅读(4363)  评论(0编辑  收藏  举报