zoukankan      html  css  js  c++  java
  • github常见问题【转自百度知道】

    配置全局的用户名和邮箱,这样push代码不用每次都输入
    $ git config --global user.name "Your Real Name"
    $ git config --global user.email you@email.address

    正常使用git在本地创建一个项目的过程(根据自己的情况调整顺序)
    $ makdir ~/hello-world //创建一个项目hello-world
    $ cd ~/hello-world //打开这个项目
    $ git init //初始化
    $ touch README
    $ git add README //更新README文件,更新全部 git add .
    $ git commit -m ‘first commit’ //提交更新,并注释信息“first commit”
    $ git remote add origin git@github.com:defnngj/hello-world.git //连接远程github项目,使用ssh方式, 也可以使用https方式git remote add origin https://github.com/IFWEB/node-deploy.git 也可以使用git clone origin https://github.com/IFWEB/node-deploy.git 方式克隆远程项目
    $ git pull origin master //从git上下载代码到本地,如果报fatal: refusing to merge unrelated histories错误,则需要加上 --allow-unrelated-histories
    $ git push -u origin master //将本地项目更新到github项目上去

    一些可能遇到的问题解决:
    如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git
    提示出错信息:fatal: remote origin already exists.
    解决办法如下:
    1、先输入$ git remote rm origin
    2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!
    3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
    4、找到你的github的安装路径,我的是C:UsersASUSAppDataLocalGitHubPortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8etc
    5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!
    如果输入$ ssh -T git@github.com
    出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。
    解决办法如下:
    1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
    2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。
    3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。
    如果输入$ git push origin master
    提示出错信息:error:failed to push som refs to …….
    解决办法如下:
    1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
    2、再输入$ git push origin master
    3、如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
    4、则需要重新输入$ git remote add origin git@github.com:djqiang/gitdemo.git
    push时提示remote: Permission to IFWEB/node-deploy.git denied to user. fatal: unable to access 'https://github.com/user/xxx.git/': The requested URL returned error: 403
    解决办法:
    1.当前用户对https://github.com/user/xxx.git没有写权限,需要配置
    注意:在将数据push到远程服务器之前,需要在github上手动建立一个repository,否则老是会报fatal: Could not read from remote repository.的错误
    .gitignore书写规则见http://www.cnblogs.com/haiq/archive/2012/12/26/2833746.html


    1. Git add 添加 多余文件 
    这样的错误是由于, 有的时候 可能

    git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件

    git add 如果添加了错误的文件的话

    撤销操作

    git status 先看一下add 中的文件 

    git diff 可以对比所有的更改,退出git diff状态直接使用q键即可
    git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 
    git reset HEAD XXX/XXX/XXX.Java 就是对某个文件进行撤销了

    2. git commit 错误

    如果不小心 弄错了 git add后 , 又 git commit 了。 
    先使用 
    git log 查看节点 
    commit xxxxxxxxxxxxxxxxxxxxxxxxxx 
    Merge: 
    Author: 
    Date:

    然后 
    git reset commit_id

    over

    PS:还没有 push 也就是 repo upload 的时候

    git reset commit_id (回退到上一个 提交的节点 代码还是原来你修改的) 
    git reset –hard commit_id (回退到上一个commit节点, 代码也发生了改变,变成上一次的)

    3.如果要是 提交了以后,可以使用 git revert

    还原已经提交的修改 
    此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交 
    git revert HEAD 撤销前一次 commit 
    git revert HEAD^ 撤销前前一次 commit 
    git revert commit-id (撤销指定的版本,撤销也会作为一次提交进行保存) 
    git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

    fatal: Unable to create 'XXX/.git/index.lock’: File exists.的解决办法

    4.标记解决冲突

    内容冲突的解决办法

    发现冲突

    一般来讲,出现冲突时都会有“CONFLICT”字样:
    $ git pull
    Auto-merging test.txt
    CONFLICT (content): Merge conflict in test.txt
    Automatic merge failed; fix conflicts and then commit the result.
     
    但是,也有例外,repo sync的报错,可能并不是直接提示冲突,而是下面这样:
    error: project mini/sample
    注:无论是否存在冲突,只要本地修改不是基于服务器最新的,它都可能报告这个错误,解决方法都是一样。
     
    这个时候,需要进入报错的项目(git库)目录,然后执行git rebase解决:
    git rebase remote-branch-name

    冲突解决的一般过程

    merge/patch的冲突解决

    先编辑冲突,然后git commit提交。
    注:对于git来讲,编辑冲突跟平时的修改代码没什么差异。修改完成后,都是要把修改添加到缓存,然后commit。

    rebase的冲突解决

    rebase的冲突解决过程,就是解决每个应用补丁冲突的过程。
    解决完一个补丁应用的冲突后,执行下面命令标记冲突已解决(也就是把修改内容加入缓存):
    git add -u
    注:-u 表示把所有已track的文件的新的修改加入缓存,但不加入新的文件。
     
    然后执行下面命令继续rebase:
    git rebase --continue
    有冲突继续解决,重复这这些步骤,直到rebase完成。
     
    如果中间遇到某个补丁不需要应用,可以用下面命令忽略:
    git rebase --skip
     
    如果想回到rebase执行之前的状态,可以执行:
    git rebase --abort
     
    注:rebase之后,不需要执行commit,也不存在新的修改需要提交,都是git自动完成。

    编辑冲突的方法

    直接编辑冲突文件

    冲突产生后,文件系统中冲突了的文件(这里是test.txt)里面的内容会显示为类似下面这样:
    a123
    <<<<<<< HEAD
    b789
    =======
    b45678910
    >>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
    c
    其中:冲突标记<<<<<<< (7个<)与=======之间的内容是我的修改,=======与>>>>>>>之间的内容是别人的修改。
    此时,还没有任何其它垃圾文件产生。
     
    最简单的编辑冲突的办法,就是直接编辑冲突了的文件(test.txt),把冲突标记删掉,把冲突解决正确。

     其他帮助查看:http://blog.jobbole.com/87700/

  • 相关阅读:
    POJ2976 Dropping tests 01分数规划
    POJ 2728 Desert King 01分数规划,最优比率生成树
    codeforces 675E Trains and Statistic 线段树+贪心统计
    codeforces 675D Tree Construction set
    UVA 11235Frequent values(RMQ)
    FZU 2105Digits Count(线段树 + 成段更新)
    HDU 4006The kth great number(K大数 +小顶堆)
    UVA 624CD(01背包输出 + 输出路径)
    HDU 1796How many integers can you find(容斥原理)
    HDU 1817Necklace of Beads(置换+Polya计数)
  • 原文地址:https://www.cnblogs.com/chuaWeb/p/github.html
Copyright © 2011-2022 走看看