Git使用常见问题汇总

1、在pull代码的时候,发现本地配置文件修改与远程repository有冲突了,此时可以commit or stash 本地代码,但是不要push,push会覆盖远程的代码,具体问题的解释以及resolution:如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,在发布这个配置文件的时候,会发生代码冲突:error: Your local changes to the following files would be overwritten by merge:protected/config/main.php
Please, commit your changes or stash them before you can merge.

参考:http://blog.youkuaiyun.com/iefreer/article/details/7679631

2、在git stash时候提示unable to auto-detect email address,好像是没有设置邮箱什么的,按照提示设置下就可以了。

参考 : http://segmentfault.com/q/1010000002930769


3、代码冲突怎么办,要保留本地代码还是覆盖。

方法一:如果我们确定远程的分支正好是我们需要的,而本地的分支上的修改比较陈旧或者不正确,那么可以直接丢弃本地分支内容,运行如下命令(看需要决定是否需要运行git fetch取得远程分支):

$:git reset --hard origin/master

或者$:git reset --hard ORIG_HEAD

解释:

 git-reset - Reset current HEAD to the specified state


--hard
               Resets the index and working tree. Any changes to tracked files
               in the working tree since <commit> are discarded.


方法二:我们不能丢弃本地修改,因为其中的某些内容的确是我们需要的,此时需要对unmerged的文件进行手动修改,删掉其中冲突的部分,然后运行如下命令

$:git add filename

$:git commit -m "message"

 


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

$:git reset --hard HEAD

参考  :http://www.2cto.com/kf/201308/237957.html



### Git 常见命令汇总 #### 推送代码至远程仓库 推送本地分支到指定的远程分支,通常用于多人协作项目中提交自己的工作成果。 ```bash git push [remote-name] [branch-name] ``` 例如推送到名为`origin`的远端服务器上的`master`分支: ```bash git push origin master ``` [^1] #### 添加文件到暂存区 当有新的或者已修改的文件需要被记录版本变更时,先要将这些改动添加进入索引(即暂存区域),之后才能通过commit保存历史快照。 ```bash git add . ``` 这会把当前目录下所有的新创建或更改过的文件都加入到待提交队列里去;也可以单独指明某个特定路径下的内容来精细化控制哪些部分应该被打包起来准备入库。 [^2] #### 忽略某些类型的文件不再追踪 有时候存在一些临时编译产物或是个人配置类的数据并不适合放在公共存储库里面共享给其他开发者查看。这时可以通过编辑`.gitignore`文档的方式告诉Git程序自动过滤掉那些不想要同步出去的东西。 停止跟踪已经存在的文件并让其后续变动不会触发任何版本控制系统的行为: ```bash git rm --cached file.txt ``` 接着向项目的根目录追加一行描述符声明该模式匹配项应当被排除在外: ```bash echo "file.txt" >> .gitignore ``` 最后记得再次执行add操作连同更新后的忽略清单一同纳入下次提交计划之中: ```bash git add .gitignore ``` 完成以上步骤后再做一次常规性的commit动作即可生效设定好的规则集。 [^3] #### 关联远程仓库 首次设置一个新的克隆副本链接回原始地址以便能够顺利地拉取/推送增量差异数据流。 ```bash $ git remote add origin git@github.com:pythonde/newRepository.git ``` 查询现有的关联关系概况一览表。 ```bash $ git remote -v ``` 初次上传资料的时候建议带上参数-u简化未来单纯调用push指令就能默认指向正确的方向而无需每次都重复输入完整的命名空间组合串。 ```bash $ git push -u origin dev ``` 从云端抓取最新的状态覆盖现有工作树使之保持一致。 ```bash $ git pull --rebase origin dev ``` 复制一份在线资源作为初始起点建立全新的本地实例化拷贝件。 ```bash $ git clone git@github.com:pythonde/newRepository.git ``` 解除之前定义好映射绑定关系断开联系。 ```bash $ git remote rm origin ``` [^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值