git 实用

1、切换新分支 及 错误讲解

git fetch   //将远程主机的更新,全部取回本地; 默认情况下,git fetch取回所有分支的更新,(eg:之前git branch -a  查看本地+远程所有分支,找不到v.0.6   fetch之后才能找到)

git checkout -b v.0.6 origin/v.0.6 //基于远程分支v.0.6创建本地分支v.0.6,并切换到分支v.0.6

git branch -vv  //查看本地分支跟踪的远程分支

错误:之前没有git fetch 而使用 git checkout -b v.0.6 origin/master ,这是错的!!!意思是基于远程分支master 创建本地分支V.0.6 ,此时只是在本地新建了一个基于master的v.0.6,远程还是在master上并没有切到v.0.6!!!!

改正:

git fetch  //1、先将远程主机的更新,全部取回本地,这样就可以看到新建的分支了

git branch -m v.0.6 v.1   //2、将之前添加错的v.0.6更改本地分支名为v.1,以便下一步可以新建基于v.0.6的本地分支v.0.6

git branch   //查看本地分支,当前分支在v.1上,*后的为当前本地分支

git branch -vv //查看本地分支跟踪的远程分支,git branch -r只是看到远程分支,没有显示当前远程分支

git checkout -b v.0.6 origin/v.0.6 //3、基于远程分支v.0.6创建本地分支v.0.6,并切换到分支v.0.6

git branch -d v.1   //4、删除没用的本地分支V.1.0

2、之前版本内容找回

git log -10    //查看之前提交的版本

git show 版本号    //查看具体版本号的详细修改

git branch  //查看本地所有分支,为master分支

git checkout -b master1 origin/master   //1:新建一个新分支master1)----简历新分支master1跟踪远程分支master, --- 此时git branch查看分支,为master 、master1  2个分支;

// ------------------在新分支master1操作---------

git cherry-pick 版本号    //2:复制内容倒master1----复制版本号的对应修改到master1

git status   //此时gitstatus 会显示有一个待提交  是刚复制的点

git pull origin master  //拉取master的最新内容倒master1

git push origin master1:master   //3:将找回内容提交到master----将本地的修改(刚复制的点)master1提交到master(注意master1后不要带空格  不然会将远程的master干掉)

git branch -r  //查看远程分支

git branch -d master  //4:删除本地分支master----删除本地master分支 --- 此时git branch 查看本地分支,只有master1一个本地分支

git branch -m master1 master   //5:将master1重命名为master----将master1重命名为master 

3、add时忽略文件

添加忽略:
git update-index --assume-unchanged   /path/file    //assume 假设    unchanged 未更改
eg: git update-index --assume-unchanged build/webpack.base.conf.js  

取消忽略(恢复跟踪):
git update-index --no-assume-unchanged build/webpack.base.conf.js

解决error: Your local changes to the following files would be overwritten by merge

1.在项目里我们一般都会把自己的配置文件忽略本地跟踪:
$ git update-index --assume-unchanged <filename>

2.但是项目里的其他人把该配置文件修改push到远程仓库之后,我们git pull代码的时候就会报错
error: Your local changes to the following files would be overwritten by merge:
        sipop-web-html/build/webpack.base.conf.js
//大意是:您的本地更改的文件将被合并覆盖。并指出了会被覆盖的文件

//------------------解决方法-----------------------
1.撤销本地对文件的忽略
$ git update-index --no-assume-unchanged config.ini

2.从最近的一次提交中读取内容,备份当前的工作区的内容,将当前的工作区内容保存到Git栈中
$ git stash
// Saved working directory and index state WIP on v.0.6: dd6f50571 Merge branch 'v.0.6' of 59.110.46.79:richinfo/sipop into v.0.6

3.pull远程仓库代码
$ git pull

4.从Git栈中读取最近一次保存的内容,恢复工作区的相关内容
$ git stash pop

5.修改合并

6.把文件回复到最新提交的版本,会保留修改内容
$ git reset HEAD config.ini

7.再次忽略本地跟踪,完成!
$ git update-index --assume-unchanged config.ini

8.最后不要忘记清除Git栈的备份
$ git stash drop

//参考:https://blog.csdn.net/young4dream/article/details/53413281
发布了26 篇原创文章 · 获赞 3 · 访问量 7950

猜你喜欢

转载自blog.csdn.net/Eva3288/article/details/79162808
今日推荐