• Git


    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
     

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

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

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

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

    假设你的本地 C:Userslizhaohong.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

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

     新建分支并且提交分支

    删除分支使用$ 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 回去。

    如果想回去最新本地版本,直接使用:git checkout  HEAD@{1} 

    然后还得 git checkout master 吧。我刚刚测试的

    -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.

    解决方法:http://blog.csdn.net/u013120247/article/details/53263169

    使用命令: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命令可以看到分支合并图。

    both modified:      readme.txt

    Git用<<<<<<<=======>>>>>>>标记出不同分支的内容

    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:UsersAdministrator.ssh 先清空原本的公私钥

    2、下载git并且进入到类似D:Gitusrin目录中

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

    4、将C:UsersAdministrator.ssh 中的id_rsa.pub上传到github上

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

    如果出现ssh: connect to host github.com port 22: Connection timed out
    请使用这个:ssh -T -p 443 git@ssh.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:UsersAdministrator.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)

    点击 【Unprotect】就好了

  • 相关阅读:
    CodeForces 825G"Tree Queries"(选根建树)
    技术日记
    [express.js 使用笔记] ajax询问数据,却显示在浏览器上,该怎么办?
    node.js 基础和文件操作 笔记
    JSON 笔记
    CSS 学习笔记(一)选择器
    cf1321E
    [学习笔记] 后缀数组
    Python 编程练习
    《明朝那些事儿》 读书笔记
  • 原文地址:https://www.cnblogs.com/CyLee/p/5474116.html
Copyright © 2020-2023  润新知