title: git总结
date: 2022-01-08 22:19:16
tags:


一、基础知识

工作区(workspace)      就是你平时存放项目代码的地方
暂存区(stage)          git add
仓库区/版本库(Repository)     git commit
远程仓库

二、回退问题

1.git add 后回退

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

2.git commit后回退

git log    命令显示从最近到最远的提交日志

    [root@localhost test-jenkins]# git log
    commit e2c7f2d567cbdc36e4503479e15ea51d19816d33
    Author: root <root@localhost.localdomain>
    Date:   Fri Jan 7 11:17:27 2022 +0800

    dev branch change

    commit 8943166480734ac5a760e482a887ee8da0140ec8
    Author: root <root@localhost.localdomain>
    Date:   Fri Jan 7 10:56:22 2022 +0800

    dev branch add index.php
    。。。。

git reest --hard  commit_id
                  上一个版本就是HEAD^,
                  上上一个版本就是HEAD^^,
                  当然往上100个版本写100个^比较容易数不过来,
                  所以写成HEAD~100。
例:
    git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
    git reset --hard HEAD^

将会删除此版本之前添加

强制push到对应的远程分支(如提交到develop分支)
git push -f -u origin develop

3.回退后悔药

git reflog用来记录你的每一次命令

[root@localhost test-jenkins]# git reflog
8943166 HEAD@{0}: reset: moving to 8943166480734ac5a760e482a887ee8da0140ec8
e2c7f2d HEAD@{1}: commit: dev branch change
8943166 HEAD@{2}: commit: dev branch add index.php
1ca6f06 HEAD@{3}: checkout: moving from release to dev
1ca6f06 HEAD@{4}: pull origin release: Fast-forward
14fbb47 HEAD@{5}: checkout: moving from master to release
14fbb47 HEAD@{6}: clone: from ssh://git@117.89.131.220:44222/zhaoyoushui/test-jenkins.git

git reset --hard e2c7f2d

4.已经提交远程分支

git reset 方法回退
拉过的错误版本的本地分支 多需要回退
回退 强制推送 远程

git revert 版本号
git revert HEAD 上个版本
git revert HEAD~n 上n个版本
git push 远程
其他客户端正常拉取就可以

三、Git Reset 三种模式

–hard: 会清空工作目录和暂存区的改动

    git reset --hard  c3b320427ad2560140e20af23225d803b2fed6e0
    

–soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 变得只是仓库区

    git reset --soft  c3b320427ad2560140e20af23225d803b2fed6e0
    

–mixed reset 不加参数(mixed):保留工作目录,并清空暂存区

    git reset c3b320427ad2560140e20af23225d803b2fed6e0

四、修改远程url

1.方法一
    git remote set-url origin [url]
    git remote -v 查看

2.方法二
    git remote rm origin
    git remote add origin [url]
    git remote -v 查看

3.方法三
    直接修改config 文件

五、常用命令

git branch :查看本地所有分钟

示例 :git branch

git branch -a :查看所有分支 包括远程

示例:git branch -a 

git branch 【分支名]:新建分支

示例:git branch  dev

git branch -d 【分支名】 删除分支

示例 : git branch  -d  test

git branch -D 【分支名】 强制删除 分支

示例 : git branch  -D  test

git merge 【分支名】 :合并分支,到当前分支

示例:git merge dev

git checkout 【分支名】:切换到那个分支

示例:git checkout dev

git checkout -b 【分支名】 【远程分支名】:新建一个分支,来自远程分支

示例:git checkout -b  dev origin/dev