超详细Git解析

 

目录

Git 新建分支:

Git 删除分支:

Git 撤销

1. 提交之前撤销:

2. 提交之后撤销:

git tag

文件状态变更

git status:通过该命令显示出来的文件总共有三种状态,分别是:

git diff:

git rebase 与 git merge:

git merge合并

git rebase 合并

冲突解决:dev 分支合并到test分支


Git 新建分支:

git branch dev-01:新建分支dev-01

git push origin dev-01:将分支dev-01推到远程,远程会自动生成同名新分支dev-01

git branch --set-upstream-to=origin/dev-01:将当前分支与远程分支关联(在den-01分支中执行该命令)

Git 删除分支:

删除远程分支:git push origin --delete <分支名>

删除本地分支:git branch -d <分支名>

Git 解决每次push都要输入用户密码问题:出现上面这种情况 先按提示输入用户名和密码,接着执行 git config --global credential.helper store

Git 撤销

1. 提交之前撤销:

  • .添加到暂存区:git add -A (-A表示所有文件添加到暂存区)

git reset HEAD filename :这个命令只是将文件从暂存区中拉下来,并不能回退。如果需要回退 还需要执行 git checkout -- filename

 

git reset HEAD :一次性将所有文件从暂存区拉下来 + git checkout -- .

 

  • 未添加到暂存区:例如修改了文件test1,没有其他操作

git checkout -- test1 (将没有添加到暂存区的一个文件回滚到所在的分支最新的一次提交)

git checkout -- . 对所有文件撤销

2. 提交之后撤销:

也就是执行了git add -A 和 git commit -m 'xxx' 和 git push origin dev之后的撤销

  • 撤销掉这次提交:git revert 版本号:会生成一次新的提交记录(当执行一次revert时再执行一次revert,回退的内容又会生效,相当于没有执行revert,有奇偶特性)

git revert 本次提交版本号 然后再执行 git push origin dev

 

  • 回退到某次提交,该提交以后的提交都回退:(有一定的风险,不可逆,所以少用,尽量使用git revert)

git reset --hard commitId:会将你的提交记录回溯到commitId这一次的提交那里,然后再执行git push origin dev --force

如下图例子:比如我想回溯到1处(保留1处记录),2处所有的提交记录都消失

git reset --hard 672b0 然后前置推送(不推荐,除非有很多文件) git push origin dev --force

 

 

git tag

打标签:v0.1版本号

git tag -a v0.1 -m 'xxx':给项目打一个标签 如果需要推送 需要用 git push --tags

 

文件状态变更

git status:通过该命令显示出来的文件总共有三种状态,分别是:

  • 已添加至缓存区,待提交(git add后)
  • 已修改,未暂存
  • 未追踪状态的文件:一般指新增文件在执行git add test1后当执行git commit -m 'test1'后,test1文件

在执行git add test1后

 

当执行git commit -m 'test1'后,test1文件

 

git diff:

1.git diff默认查看没有添加至暂存区的文件

2.git diff --staged 查看暂存区文件内容的修改

如下图‘-’表示删除 ‘+’表示新增

git rebase 与 git merge:

git rebase 与 git merge 都可以进行分支的合并

git merge 合并后会保留两个分支的记录

git rebase 合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个副本

git merge合并

dev 分支 合并到test分支

合并步骤:git fetch origin dev -> git merge dev -> git push origin test (git push origin test --force)

git merge 解决冲突后需要手动通过git add -> git commit 生成一次提交

git merge一次性会解决之前提交记录中所有的冲突

git rebase 合并

dev 分支合并到test分支

合并步骤:git fetch origin dev -> git rebase dev ->git push origin test

 

git rebase在解决冲突后,会自动生成一次提交。

git rebase一次只会解决一次提交上的冲突,如果多次提交都有冲突,需要执行多次rebase操作。

 

冲突解决:dev 分支合并到test分支

git merge :

会一次性把所有冲突显示出来,例如有两个文件test1 test2都有冲突,可以都一次性修改这两个文件,会新生成一次提交

步骤:git fetch origin dev -> git merge dev ->修改文件解决冲突 -> git add test1 ->git add test2 -> git commit -m 'config merge dev' -> git push origin test

 

dev 合并到 test:下图

git rebase:

(dev test分支同时都修改了test1 test2文件)

步骤:git fetch origin dev -> git rebase dev ->修改冲突文件test1 ->git add test1 -> git rebase --continue ->继续修改冲突文件test2 ->git add test2 ->git push origin test

如下图:当执行git rebase dev时,这时候只是先显示出test1的冲突文件git rebase --continue:相当于解决test1文件冲突后继续后续操作 解决test2的冲突

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值