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:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
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.标记解决冲突
内容冲突的解决办法
发现冲突
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
冲突解决的一般过程
merge/patch的冲突解决
rebase的冲突解决
编辑冲突的方法
直接编辑冲突文件
<<<<<<< HEAD
b789
=======
b45678910
>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
c
其他帮助查看:http://blog.jobbole.com/87700/