总体参照廖雪峰的git教程来学习的!!
1.刚配置好的git,刚要commit一些修改,就遇到了这个问题
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'name@bogon.(none)')
- 解决方法一:
1.$ git config --global user.email "you@example.com"
2.$ git config --local -l 查看本地配置 - 解决方法二(参照网上解决办法):
找到工程目录(自己mkdir的仓库)的.git文件夹,打开之后找到config文件,在最后边加上一句话
[user]
email=your email
name=your name
2.git 和github的ssh密钥问题?
(1).查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
(2).生存密钥:
$ ssh-keygen -t rsa -C “your email”
(3).按3个回车,密码为空,再次查看.ssh文件中得到了两个文件:id_rsa和id_rsa.pub,其中id_rsa.pub就是我们要使用的那个
复制里面的全部内容,粘贴到github获取自己的git服务器ssh_key指定位置.
github : setting-->ssh and gpg keys
(4).测试是否添加成:
ssh -T git@github.com
如果成功有如下提示:
Hi your name! You've successfully authenticated, but GitHub does not provide shell access
3.为什么Git比其他版本控制系统设计得优秀?
因为Git跟踪并管理的是修改,而非文件。
4.常用命令
git add filename
git commit -m "说明"
git diff 查看master里面版本与工作区版本的区别
git log 查看master 的某个文件所有版本的修改记录
git reset --hard HEAD^ 回到master管理的当前版本的上一个版本
git reset --hard HEAD~100 回到master管理的当前版本的上100个版本
git reset --hard id 回到master管理的commit id的版本
git reflog 查看之前你写的命令
git reset HEAD filename 删除最后一次暂存区的修改,然后再用下一条命令删除工作区修改(head指master的最近一次版本)
git checkout -- filename 用master中的HEAD文件替换工作区间的文件
git rm +git commit 删除工作区的文件
$ git push -u origin master 将本地库同步到远程库
$ git clone git@github.com:fanminy/gitskills.git 将远程库克隆到本地(注意路径)
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>