Git常见问题汇总

如何修改git的comments

前提是该代码没有push到远程,
先 git commit --amend
然后再操作Vim。
注意:--amend选项仅仅可以修改最近的一次提交

git bash中出现vim操作

git bash中出现vim时,
git在合并分支时出现操作Vim的情况,
1.按键盘字母 i 进入insert模式
2.修改最上面那行黄色合并信息,可以不修改
3.按键盘左上角"Esc"
4.输入":wq",注意是冒号+wq,按回车键即可
	
如果是输出状态,首先Esc退出输入状态,然后Shift+;(其实就是输入冒号:),再输入q!或wq!(不保存改动,wq!是保存文件的写入修改)退出

文件已经被add了,但是还没commit,怎么取消已经add的文件

有时候不小心使用了git add .操作,一次性add了好多文件,分两种情况:
1. 取消已经add的单个文件,使用下面的命令
git rm --cached <fileName>
2. 取消已经add的文件夹,使用下面的命令
git rm -r --cached <folderName>/
其中-r,代表递归操作,因为后面接的是文件夹,就会把文件夹下的所有已经add的文件都取消掉

gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决

第一步,为避免冲突需要先同步下远程仓库
git pull

第二步,在本地项目目录下移除所有的缓存索引, -r修饰的意思是删除文件夹。
git rm -r --cached .

第三步,再次add所有文件
输入以下命令,再次将项目中所有文件添加到本地仓库缓存中
将所有修改过的工作文件提交暂存区
git add .

第四步,添加commit,提交到远程库
git commit -m "filter new files"
git push

迁移SVN上的项目到git上

git svn clone --stdlayout --authors-file=authors.txt "<svn url>"
在你要clone代码的路径下创建一个authors.txt,里面的内容需要参考svn的log来写,里面配置所有提交过代码人的信息,然后log 就能过去, 具体格式如下:
userName = userEmail
例如:zhang san = 111@email.com

可以去掉 --stdlayout
注意:svn url,最好是用""包起来。如果svn url中有空格,就会出现问题。

如何把develop分支merge到master

先切到master分支,然后执行,一般是fast forward的模式,直接指向该分支,所以速度很快。
git merge develop
如果有冲突,就需要去手动结局冲突。
	
推荐下面这种merge
git merge --no-ff develop
--no-ff 不使用fast-forward方式合并,保留分支的commit历史
(如果develop的分支有单独的修改,需要merge的分支有自己另外的修改,用上面的命令,就会整体merge,develop分支中的修改提交就不会被覆盖掉)

修改了远程仓库名,

1.删除后添加
git remote rm origin
git remote add origin <url>

2.修改命令 
git remote origin set-url <url>
再次启动同步会提示输入用户名密码只要输入正确后就可以正确同步了
说明:origin 是默认的远程版本库名称 还可以创建其他名称的版本库 

或者,使用下面的方式修改
git config remote.origin.url "https://......git"

看懂git diff命令后面显示的内容

格式基本相同diff -u统一的差别。

例如:
diff -u <(seq -w 16) <(seq -w 16 | grep -Ev '^(02|03|14|15)$')
这里我们删除了第2、3、14和15行:

@@ -1,6 +1,4 @@
01
-02
-03
04
05
06
@@ -11,6 +9,4 @@
11
12
13
-14
-15
16
@@ -1,6 +1,4 @@指:

-1,6*这一段对应于第一个文件的第1至第6行: 01 02 03 04 05 06-意思是“老”,因为我们通常把它作为diff -u old new。
+1,4说这个片段对应于第二个文件的第1行到第4行。+意思是“新”。 我们只有4行,而不是6行,因为2行被删除了!新来的家伙是: 01 04 05 06
@@ -11,6 +9,4 @@对于第二个大块头来说,它类似于:

在旧文件中,我们有6行,从旧文件的第11行开始: 11 12 13 14 15 16
在新文件中,我们有4行,从新文件的第9行开始: 11 12 13 16 注意这一行11是新文件的第9行,因为我们已经删除了前面的文件中的2行:2和3。
根据git版本和配置,还可以在@@线,例如func1() {在:

@@ -4,7 +4,6 @@ func1() {
这也可以通过-p diff。

示例:旧文件:

func1() {
	1;
	2;
	3;
	4;
	5;
	6;
	7;
	8;
	9;
}
如果我们移除线6,差异显示:

@@ -4,7 +4,6 @@ func1() {
	3;
	4;
	5;
-    6;
	7;
	8;
	9;
请注意,这不是正确的行func1*它跳过了行1和2。

git diff发现windows下会出现"^M"符号

每个操作系统有自己的换行符(就是当你按下”回车”后,系统会自动插入一些不可见的符号来表示一行的结束)
Linux和Mac都是使用LF ,Windows 则是CRLF ,这样就造成了差异。

git config --global core.autocrlf true
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git是一个非常流行的版本控制系统,但有时候在使用中会出现错误。下面是一些常见的Git错误代码以及解决办法: 1. 错误代码:fatal: refusing to merge unrelated histories 解决办法:在执行git pull命令时添加--allow-unrelated-histories参数,即git pull origin master --allow-unrelated-histories 2. 错误代码:error: failed to push some refs to 'git@github.com:XXX/XXX.git' 解决办法:先执行git pull命令更新本地代码,再执行git push命令推送代码 3. 错误代码:fatal: not a git repository (or any of the parent directories): .git 解决办法:进入正确的git仓库目录 4. 错误代码:fatal: unable to access 'https://github.com/XXX/XXX.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 解决办法:检查网络连接,或者将https改为ssh协议,即git@github.com:XXX/XXX.git 5. 错误代码:error: Your local changes to the following files would be overwritten by merge 解决办法:先执行git stash命令,将本地修改保存起来,再执行git pull命令更新代码,最后执行git stash pop命令恢复本地修改 6. 错误代码:fatal: the remote end hung up unexpectedly 解决办法:检查网络连接,或者将git缓存设置为最大值,即git config --global http.postBuffer 524288000 7. 错误代码:error: pathspec 'XXX' did not match any file(s) known to git 解决办法:检查输入的文件名是否正确,或者执行git add命令添加文件 这些是常见的Git错误代码和解决办法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值