前言
内容
1.git fetch
1.1 git fetch origin
$ git fetch
上面命令将某个远程主机的更新,全部取回本地;
git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响;
1.2 git fetch
$ git fetch
上面命令取回特定分支的更新;
例如:取回origin主机的master分支,如下:
$ git fetch origin master
取回的更新,在本地主机上要用"远程主机名/分支名"的形式读取。比如origin主机的master,就要用origin/master读取;
1.3 直接使用 git fetch 命令
git fetch
创建并更新本地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上;
在FETCH_HEAD中设定当前分支-origin/当前分支对应,如直接到时候git merge就可以将origin/abc合并到abc分支上;
git fetch origin
手动指定了要fetch的remote。在不指定分支时通常默认为master;
git fetch origin dev
指定远程remote和FETCH_HEAD,并且只拉取该分支的提交;
1.4 对比git pull
与git pull相比git fetch相当于是从远程获取最新版本到本地,但不会自动merge。如果需要有选择的合并git fetch是更好的选择。效果相同时git pull将更为快捷;
2.git checkout
git checkout 命令用于切换分支或恢复工作树文件
2.1 恢复工作树
有时候我们写的代码写错分支了,我们想要恢复到上一次版本,使用:
git checkout --.
2.2 本地切换到指定分支
查看分支,并切换到本地分支:feature/A
2.3 关联本地分支
git checkout -b 本地分支 origin/远程分支
通过git branch可以看到本地多了一个develop分支
2.4 从某一个commit开始创建本地分支
1、git log 查看提交
2、// 通过checkout 跟上commitId 即可创建制定commit之前的本地分支
git checkout commitId -b 本地新branchName
上传到远程服务器
// 依然通过push 跟上你希望的远程新分支名字即可
git push origin HEAD:远程新branchName
3.git branch
3.1 查看本地分支
$ git branch
3.2 删除本地分支与远程分支同步
远程删除分支:我们删除gitlab上的分支feature/A,之前我们同步到本地的分支feature/A也需要删除。
本地查看分支并同步删除分支
提示你可以通过git remote prune 移除这个分支。(也就是说你可以刷新本地仓库与远程仓库的保持这些改动的同步)
查看远程分支
$ git branch -r
4.git stash
4.1 分支暂存和恢复
stash命令可用于临时保存和回复修改,可跨分支。
git stash暂存分支:一般如下配置使用
1.先暂存分支
git stash
2.分支切回来后,查看下暂存区
git stash list
3.把之前暂存内容应用回来
git stash apply
4.2 实例
1.分支暂存
2.分支恢复
5.git reset
5.1 方式1
通过使用Git版本恢复命令reset,可以回退版本。reset命令有3种方式:
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
以下是一些reset的示例:
1 git reset HEAD^ #回退所有内容到上一个版本
2 git reset HEAD^ a.py #回退a.py这个文件的版本到上一个版本
3 git reset –soft HEAD~3 #向前回退到第3个版本
4 git reset –hard origin/master #将本地的状态回退到和远程的一样
5 git reset 057d #回退到某个版本
6 git revert HEAD #回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit
5.1 方式2
在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本。步骤如下:
1、查找commitId
首先用命令行打开git项目路径,输入git log命令查看commit记录,如下:
git log
找到commitId是9a0d02d1578ea064479296ad7efa70c5cb1a3717记录,这是执行上面命令后打印出来的信息:
2、找到需要回滚的commit,输入git reset --hard {commitId},将本地文件回滚:
git reset --hard c503cffa099332911d4fce2fc1399cb4bc3ba9d6
3、此时本地文件已经回滚到刚刚commit 9a0d02d1578ea064479296ad7efa70c5cb1a3717之后的状态,但是服务器仍然没有改变,需要继续远程回滚:
git push -f