一、配置

清除本地git账户,重新输入用户名密码(最优)

git config —system —unset credential.helper

解决:git push error: failed to push some refs to

使用如下命令:git pull —rebase origin master
然后再进行上传: git push -u origin master

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

  1. git rm -r --cached .
  2. git add .
  3. git commit -m 'update .gitignore'

修改远端URL

  1. // 方法一
  2. git remote set-url origin <url>
  3. // 方法二
  4. git remote rm origin
  5. git remote add origin [url]

二、操作

git 合并

合并策略概述
git合并操作可以指定使用的合并策略,默认会选择最适合的合并策略。例如:两个分支的合并默认使用recursive合并策略、两个以上分支的合并默认使用octpus合并策略。我们也可以通过传递参数来指定使用的合并策略,命令行模式为:git merge -s 合并策略 -X 合并策略参数
resolve策略:只能用于两个分支的合并,这个合并策略被认为是最安全、最快的合并策略
recursive策略:只能用于两个分支的合并,两个分支的合并默认使用该策略。该策略可以使用选项:
ours:在遇到冲突的时候,选择当前分支的版本,而忽略远程合并过来的版本。
theirs:和ours选项相反
subtree[=path]:使用子树合并策略
octpus策略:用于合并两个以上分支的策略,该策略拒绝执行需要手动解决的复杂合并。
ours:可以用于任意多个分支的合并策略,合并的结果总是使用当前分支的内容而丢弃远程合并过来的版本内容
subtree:这是一个经过调整后的recursive策略,子树合并策略相关内容可以去百度,这里就不详解了(主要是博主也不会~~)

合并相关的设置

可以通过命令git config来设置与合并相关的配置变量,对合并进行配置。
merge.conflictstyle:该配置变量定义冲突文件中冲突内容的标记风格,有两个可用的风格:默认的merge和diff3
默认的merge风格使用标准的冲突分界符<<<<<<<=======>>>>>>>读冲突内容进行标识,两个文字块分别是本地的修改和他人的修改
diff3风格会在冲突文件中出现三个文字块,<<<<<<< ||||||| ======= >>>>>>>,分别表示本地更改版本、共同的原始版本、他人更改的版本
merge.tool:设置执行命令git mergetool进行冲突解决时调用的图形化工具
merge..path:设置对应的图形化工具的安装位置

git clean 清除文件

error: Your local changes to the following files would be overwritten by checkout: .省略中间部分 Please move or remove them before you can switch branches.

  1. git clean -d -fx ""
  1. x :表示删除忽略文件已经对git来说不识别的文件
  2. d : 删除未被添加到git的路径中的文件
  3. f : 强制执行

Git 中文文档.pdf
github-git-cheat-sheet.pdf