文档章节

git 使用技巧大全

彩虹糖tang
 彩虹糖tang
发布于 2015/08/16 11:55
字数 1121
阅读 142
收藏 9

提示各位亲,如果你不幸看到了这篇挫文,看了还是没有解决自己Git的问题,可以直接发私信联系我哦,我会第一时间想办法帮你解决~~

向远程仓库pull一个项目,提示和本地文件有冲突,需要合并才能进行后面的操作,于是这时候 ours和theirs这两个操作就派上用场了

$ git checkout --ours .                      保留自己原来的版本, 抛弃远程pull下来的版本(的所有有冲突的文件) ,或者:
$ git checkout --ours 文件名1 文件名2                         这样只针对部分文件。
$ git checkout --theirs .                    保留远程的版本,抛弃自己本地的版本


###解决冲突的终极办法

发现又一个解决方案,因为如果按照上面的方法去做的话,会发现现在的分支还是master | MERGING 这种状态,执行如下命令可以完全丢弃本地的修改:

$ git reset --hard origin/master

另外一种方法,我们不能丢弃本地修改,因为其中的某些内容的确是我们需要的,此时需要对unmerged的文件进行手动修改(手动修改的意思是打开这个文件,“手动”修改),删掉其中冲突的部分,然后运行如下命令

$ git add filename
$ git commit -m "message"


###master | MERGING解决办法

情况:远程只有一个readme.md文件,本地没有,本地只有项目的初始代码,这样push的时候肯定是失败的,因为会提示你:你的操作被拒绝,因为远程有些工作你没有,这通常是由于另外一个仓库push所致,你应该先合并远程的改变然后才能push你的代码。

于是 

git pull(已经绑定默认远程仓库的情况)

或者:

git pull origin master

这个时候git命令行中分枝状态变成了 master | MERGING,现在:

git add .
git commint -m "merge with remote"

就ok啦~~~


还有,如果我们觉得合并以后的文件内容比价混乱,想要废弃这次合并,回到合并之前的状态,那么可以运行如下命令:

    $:git reset --hard HEAD

###注意的地方

1、当删除本地文件并同时需要删除远程文件的时候,直接删除,然后 git add,git commit ,git push就可以把远程的文件删掉了。

2、当远程文件比本地文件要少,但是并没有冲突的时候,直接git pull会直接删除本地在远程上面没有的文件。


###pull失败

pull失败有很多原因,有一种是因为没有与远程分支建立连接,比如,出现错误如下:

fatal:No remote reposiatory specified.please,specify either a URL or a remote name from which new revisions should be fetched.

,解决办法是,使用如下命令建立连接:

$ git branch --set-upstream dev origin/dev

这样就将当前分支与远程 origin仓库的dev分支建立了连接。

###更新-git真不会用啊

今天做一个web app的demo,然后下班之后想传到osc git上面去。于是在osc git 创建了仓库web-app,但是在创建的同时还自动创建了其他的一些文件,比如.gitignore,licence,当时没有体会到这个会引发一个问题。

在本地git push代码的时候提示需要先pull,于是pull ,git 的命令行窗口的分支名字于是变成了master | MERGING,一看这不是我以前遇到的冲突吗?翻到这篇文章,不假思索的就执行了

$ git reset --hard origin/master

,这下完了,把本地写的代码都删掉了。。。

于是继续找方法,发现还有 git reflog这个命令,

git reflog

然后出现了第一次commit的id,这下真的是太好了

git reset id

这样就恢复文件了。

###修改远程仓库的路径

有时候配置远程仓库的时候,把路径写错了,修改办法有三种:

1. 修改命令 
git remte origin set- 

2.先删后加 
git remote rm origin 
git remote add origin git@github.com:Liutos/foobar.git 

3. 直接修改config文件

###强制推送

git push osc master -f

强制推送会将远程仓库替换成本地仓库,请谨慎操作

© 著作权归作者所有

共有 人打赏支持
彩虹糖tang
粉丝 27
博文 16
码字总数 4906
作品 0
武汉
个人站长
私信 提问
IntelliJ IDEA神器使用技巧(基于Mac OS X 10.5+)

介绍使用技巧之前,先贴两张图。 进入正文(下方截图中右边显示的就是快捷键,对应的符号有不懂的看上面两张图)。 无处不在的跳转 项目之间的跳转 (最近操作过)文件之间的跳转 按类名打开...

小怪聊职场
2018/11/19
0
0
为了前端的深度-git的命令行

源起 2018年末,我面试了五六家大大小小的公司,其中小公司过了没去,两家大公司的都失败了。在面360和拼多多的时候,因为我感觉自己面对不好,所以我在结束的时候希望面试官可以给我一个评价...

lionel爱学习
01/09
0
0
Android Studio 使用技巧

录制了3集 Android Studio使用技巧,适合从eclipse迁移到Android Studio的同学,大家有兴趣可以看一下! Android Studio 使用技巧大全

W320K
2016/02/22
633
1
Git命令大全

1.$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com" 2.初始化一个Git仓库,使用git init命令。 3.添加文件到Git仓库,分两步: 第一步,......

大道至精
2015/10/15
269
0
Git 12 岁了,为你送上 12 个 Git 的使用技巧!

使用这12个Git的诀窍与技巧来令你的版本控制经验更加有用。 Git,一个分布式版本控制系统,它已经成为了开源世界的源码控制默认工具,在4月7号12岁了。但是使用Git中更另人沮丧的是,你需要了...

Mr_zebra
2018/08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开源 java CMS - FreeCMS2.8 自定义标签 sitePath

项目地址:http://www.freeteam.cn/ sitePath 从FreeCMS 2.4开始支持 按上下级顺序提取指定站点的所属站点。 参数 说明 id 站点id sourcepath 站点源文件目录名 返回值 说明 site 站点对象,...

freeteam
32分钟前
1
0
2019 年最好的 7 款虚拟私人网络服务

糟糕的数据安全会带来极大的代价,特别是对企业而言。它会大致大规模的破坏并影响你的品牌声誉。尽管有些企业可以艰难地收拾残局,但仍有一些企业无法从事故中完全恢复。不过现在,你很幸运地...

linuxCool
今天
6
0
OSChina 周一乱弹 —— 加油,还有11个小时就下班了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @_全村的希望 :吴亦凡把大碗面正儿八经做成单曲了,你别说,还挺好听 《大碗宽面》- 吴亦凡 手机党少年们想听歌,请使劲儿戳(这里) @tom_t...

小小编辑
今天
629
16
C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
7
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部