fatal: Authentication failed 的解决方案

https://www.jianshu.com/p/8a7f257e07b8

解决方案很简单: 进入  C:\Users\用户名\.gitconfig  只留下类似以下内容



[user]
    name = chencheng
    email = 15875658583@163.com



这可能是因为之前使用了 credential.helper 缓存账户密码导致的问题。

但试了上面的方法还不行,就用管理员方式打开命令行,然后运行: git config --system --unset credential.helper

 

使用 git config --global credential.helper store 的方式永久记住账号密码,只需要输入一次。

1、输入git config --global credential.helper store

2、检查 /home/用户名/.gitconfig 会新增一项 helper = store

 

git 提交时遇到中文的乱码问题



 git config --global core.quotepath false



 

gitlab ci job不清理缓存 gitlab清空所有代码_文件名


 

1、手动处理冲突后,要add + commit才算是解决。

 2、add错了的时候,使用git reset HEAD 可以取消所有的add

 

如何让本地既支持github、又支持gitlab?

参考文章:https://www.jianshu.com/p/f7f4142a1556

假设你的本地 C:\Users\lizhaohong\.ssh\ 已经有了 id_rsa。那我们的思路是:

1、将 id_rsa 改名为 id_rsa_fuck,

2、让github的提交指向这个文件。

方法很简单,只需要在.ssh文件新建一个config文件。


$ touch config


并加入以下代码即可


# github
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa_fuck
        User 李钊鸿


接着,你就可以生成gitlab的key了。套路和流程跟github几乎一模一样。生成之后,将.pub 上传到gitlab的后台即可。

 

可以通过这种方法测试是否配置成功:ssh -T git@你的gitlab服务器IP

gitlab ci job不清理缓存 gitlab清空所有代码_文件名_02

切记,这种方法只适合SSH方式,HTTP方式好像不行。

gitlab ci job不清理缓存 gitlab清空所有代码_github_03

 

 新建分支并且提交分支

删除分支使用$ git branch -D fuck


$ git branch god
$ git push origin god


 

天坑记录:

-2、版本回退


git log
git reset --hard <commit id>
或者
git checkout <commit id>


回滚之后,原来最新的历史会不见 git log ,但可以通过 git reflog

然后又可以使用 reset 和 checkout 回去

 

-1、git pull origin master 明明没有更新却提示Already up-to-date.

如果你确保线上一定是最新的话,那么可以先撤销本地修改,也就是 git checkout .,然后再执行一遍Pull即可。

 

0、git Bush应用崩溃If no other git process is currently running, this probably means a git process crashed

如何解决呢? 按照'XXXXXXXXX'里面说的路径找到该文件,删除就可以了

 

1、fatal: unable to access 'https://github.com/git/git.git/': SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

解决方案: 将git remote 的HTTPS地址 修改为 SSH 地址即可

2、小坑记录:git push -u origin master 报错:


$ git push -u origin master
To https://github.com/dragon8github/es6-Study-Notes.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/dragon8github/es6-Study-Notes.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.


解决方法:

使用命令:git pull --rebase origin master 然后再尝试 git push -u origin master

 

1.查看版本


git --version


2.查看配置


git config --list


3.添加配置


git config --global user.email "928532756@qq.com"

git config --global user.name "dragon8github"


4、删除配置


git config --global --unset http.sslcainfo


 6.初始化


git init


 7、add(.表示所有),commit 必须先执行add才能执行commit


git add .


git commit -m "this is my our first commit"


9、打印详情


git log


 

 11.可以修改txt文件或者当内容发生改变时会提示红字 modified 标示

新增两个txt文件查看情况,再一次使用git add .提交两个new file再查看status.然后再一次commit -m “two new file”

直到提示nothing to commit, working directory clean.才说明完毕


git status


 12.查看更改详情,按下Q退出


git diff


 13.在Commit之前,add之后依然可以查看历史


git diff --staged


 16、签出(commit之前,add并且改变文本内容之后.还能还原内容)


git checkout -- 123.txt


git checkout -- .


 17、reset head(在add之后,版本号会变绿色,而且当查看git status 时,文件名也会变绿色,这时我们反悔了,不想add了可以使用该命令,当然所有的文件名都可以指定“.”)


git reset head <fileName> : 回滚最近一次add操作

 git reset –soft <commit id>:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

 git reset –hard <commit id>:彻底回退到某个版本,本地的源码也会变为上一个版本的内容


 18.回到曾经的版本


git checkout 3cb727798 -- 123.txt

git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96


 19.使用github(先在github上注册并且创建一个仓库)


git init  

git remote add origin https://github.com/dragon8github/learngit.git  

git add .

git commit -m "first commit"

git push -u origin master


 20.branch分支


git checkout -b dev  --创建并且切换到分支

git branch dev  --创建分支

git branch  --查看分支

git checkout dev  --切换分支

git branch -d bug0.0.0.1 --删除分支

git branch -D ffff   --强制删除分支

如果要删除github上的分支,需要先删除本地分支,然后再上传一个空分支即可删除: git push origin : dev


 21.merge 合并分支(先切换回master,下面的例子就是master和dev分支合并的意思)


git merge dev


 22.合并冲突(当主线master和支线Lee都commit了readme的修改时,在进行合并的时候会发生警告。这是理所当然的。)这种合并的冲突可以通过git status和git diff、readme查看冲突的内容。将冲突的内容更改(Add+commit)之后再合并(或者直接删除掉某一个分支的readme再合并)就正常了.用git log --graph命令可以看到分支合并图。

<<<<<<<
=======
>>>>>>>

23.有痕合并(方式和22雷同。但是合并和查询时多了一些参数)


git merge --no-ff -m "noff" dev

git log --graph --pretty=oneline --abbrev-commit


 24、储存进度(往往开发到一半,临时有一个新的bug需要处理。这时,当前的分支(dev)需要先存档,然后切换到bug分支处理完成之后。再读档dev)


git stash list


git stash apply --读档

git stash pop --读档并且删除


 25、push代码到github上


git remote rm origin

git remote add origin https://github.com/dragon8github/HuaHua.git


 26、设置SSH  

如果我要存储两个ssh(公司gitlab的shh和自己github的ssh)应该怎么办?:http://www.jianshu.com/p/f7f4142a1556

如果使用码云则参考这个:http://git.mydoc.io/?t=154712


1、进入C:\Users\Administrator\.ssh 先清空原本的公私钥

2、下载git并且进入到类似D:\Git\usr\bin目录中

3、ssh-keygen -t rsa -C "928532756@qq.com"  --连续按三下空格

4、将C:\Users\Administrator\.ssh 中的id_rsa.pub上传到github上

5、ssh -T git@github.com  --注意,这里真的是git@github.com,不需要更改其他

6、当出现Are you sure you want to continue connecting (yes/no)? 的时候,请手动输入yes
设置成功之后,所有的remote add 的 路径全部要改为ssh如:git@github.com:dragon8github/backbone.git
之后push的时候就不会询问密码和账号了,生成完成之后,进入C:\Users\Administrator\.ssh 查看


如果你是mac用户:

第1、2步其实可有可无吧

第3步生成代码为:$ ssh-keygen -t rsa -C "928532756@qq.com"

第4步生成后的秘钥放在: $ cd ~/.ssh

其他基本一样。

27.下载最新github项目

clone克隆项目(下载代码和分支)

pull是下载并且合并不同版本的代码,如果文件夹初始化git.init,那么效果和clone一致


git pull origin master

git reset --merge   --如果发现和本地太多冲突,则可以回复


 28.合并冲突fetch


#下载最新版本,但不合并
git fetch origin master

#比对本地的master版本和服务器上的master的不同
git diff master origin/master  

#无冲突情况下直接合并
git merge origin/master

#冲突情况下,分两种模式解决
git checkout --ours 文件名   #以我为主
git checkout --theris 文件名   #以服务器为主

#设置完模式后,之后再add 和 commit 、 push即可


 

29、git忽略上传

在根目录新建.gitignore文件,内容示例


/node_modules/
/dist/


 

30、gitlab 默认创建的分支,master是不允许除了创建者以外的提交的,需要设置一下

Setting -> Repository -> Protected Branches(Expand)

gitlab ci job不清理缓存 gitlab清空所有代码_文件名_04

点击 【Unprotect】就好了