文档章节

git 使用技巧大全

彩虹糖tang
 彩虹糖tang
发布于 2015/08/16 11:55
字数 1121
阅读 138
收藏 9
点赞 0
评论 0

提示各位亲,如果你不幸看到了这篇挫文,看了还是没有解决自己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
粉丝 25
博文 14
码字总数 4836
作品 0
武汉
个人站长
OSChina 技术周刊第十期,每周技术抢先看!

每周技术抢先看,总有你想要的! 移动开发 【软件】Android 表单验证框架 - AValidations 【软件】Git@OSC 的 iPhone 客户端 【软件】Git@OSC 的 Android 客户端 【博客】使用gradle构建and...

OSC编辑部 ⋅ 2014/11/24 ⋅ 10

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 ⋅ 0

【收藏】学习资源汇总(不断更新...)

0. 安全 1. 开源项目 2. 其他

u013553529 ⋅ 2017/02/08 ⋅ 0

有哪些实用的计算机相关技能,可以在一天内学会?

本文由伯乐在线 -伯小乐 翻译。未经许可,禁止转载! 英文出处:Quora。欢迎加入翻译组。 这个问题来自 Quora 网友,题主还补充说: 注:这个问题特指和计算机打交道的技能。 寒假我有一个月...

伯乐在线 ⋅ 2014/12/25 ⋅ 0

Sublime 资源汇总

《sublime text2使用经验》:里面插件的推介和使用、截图。 《Sublime Text 2 入门及技巧》:技巧,可惜是4年前的东西了。 《Sublime Text 2安装插件方法详解》:介绍了使用 GoAgent 处理“i...

腊八粥 ⋅ 2015/06/25 ⋅ 0

GIT 常用命令

1:查看本地分支。带号的是当前所在的分支。 git branch 2:查看所有分支(包含本地和远程的分支)带号的是当前所在的分支。 git branch -a 3:修改分支名称(重命名)使用时候不要加“<>” ...

郏高阳 ⋅ 2015/07/03 ⋅ 0

excel巧用REPT函数在数字前补0

此段文字节选自《Excel 2007技巧大全》一书 现要将A列中的数字转化为10位数的数字,原数字位数不够10位的在前面补0。 打开文件,在C1单元格输入公式: =RIGHT((REPT(0,8)&A1),10) 其余单元格...

技术小胖子 ⋅ 2017/11/13 ⋅ 0

Mybatis 通用 Mapper 3.0.0 发布

MyBatis通用Mapper3 极其方便的使用Mybatis单表的各种通用方法 Mapper 3.0.0更新日志: 将EntityMapper和SqlMapper移出,现在是独立项目EntityMapper 将Mapper全部接口方法拆分为独立接口,方...

Liuzh_533 ⋅ 2015/06/05 ⋅ 8

程序猿必备资源清单(安卓居多)

[TOC] Gota Android 6.0 动态权限适配。 安装 Maven gradle 使用 添加好库之后,创建一个对象,传入权限数组,注册回调函数。 OnRequestPermissionsBack OpenSSl 是一个安全套接字层密码库,...

flueky ⋅ 2017/10/05 ⋅ 0

值得关注的 13 个技术类微信公众号

分享一下 13 个不错的技术类微信公众号。其中有最受欢迎的热门公众号、也有专注某个技术的公众号,涵盖 Java、Python、Android、iOS、Web前端、PHP、C/C++、.NET、Linux和数据库等技术和开发...

可爱的程序媛 ⋅ 2015/03/12 ⋅ 17

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内核线程、轻量级进程、用户线程

线程与进程概念 在现代操作系统中,进程支持多线程。 进程是资源管理的最小单元; 线程是程序执行的最小单元。 即线程作为调度和分配的基本单位,进程作为资源分配的基本单位 一个进程的组成...

117 ⋅ 23分钟前 ⋅ 0

elasticsearch2.4.6升级为elasticsearch-5.5.0的经历

将elasticsearch-5.5.0 中的配置 path.data 指向原来的数据路径 即 path.data: /usr/local/src/elasticsearch-2.4.6/data 注意: elasticsearch-5.5.0 需要将jdk版本升级到1.8...

晨猫 ⋅ 23分钟前 ⋅ 1

lvm讲解 磁盘故障小案例

1

oschina130111 ⋅ 27分钟前 ⋅ 0

那些提升开发人员工作效率的在线工具

本文转载自公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的。 Hollis偏爱使用...

时刻在奔跑 ⋅ 40分钟前 ⋅ 0

restful风格 实现DELETE PUT请求 的web.xml的配置

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframe......

泉天下 ⋅ 45分钟前 ⋅ 0

Shell数组

Shell数组 Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数...

蜗牛奔跑 ⋅ 54分钟前 ⋅ 0

nmap为了开发方便 可以做简单的修改

因为nmap扫描是默认使用的是nse脚本,但是在开发的过程中需要修改后缀(主要是因为后缀为lua才能显示高亮,所以这里用一个取巧的办法) nse_main.lua文件中我们找到如下代码 local t, path = cn...

超级大黑猫 ⋅ 58分钟前 ⋅ 0

springmvc获取axios数据为null情况

场景:前端用了vue没有用ajax与后台通信,用了axios,但是在代码运行过程中发现axios传递到后台的值接受到数据为null。 问题原因:此处的问题在与axios返回给后台的数据为json类型的,后台接...

王子城 ⋅ 今天 ⋅ 0

hadoop技术入门学习之发行版选择

经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易。看到这样的答案不免觉得有些尴尬,这个问题算是白问了,因为这个...

左手的倒影 ⋅ 今天 ⋅ 0

806. Number of Lines To Write String - LeetCode

Question 806. Number of Lines To Write String Solution 思路:注意一点,如果a长度为4,当前行已经用了98个单元,要另起一行。 Java实现: public int[] numberOfLines(int[] widths, Str...

yysue ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部