什么是git
Git是目前世界上最先进的分布式版本控制系统(没有之一),用于敏捷高效地处理任何或小或大的项目。
远程仓库
创建公开密钥认证所需的ssh key
$ ssh-keygen -t rsa -b 4096 -c "your_email@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): 按回车键
Enter passphrase (empty for no passphrase): 输入密码
Enter same passphrase again: 再次输入密码
id_rsa 文件是私有密钥,id_rsa.pub 是公开密钥。
添加公开密钥
登录github,点击右上角头像,选择Settings,再点击SSH and GPG keys,设置SSH keys。点击New SSH key 把id_rsa.pub 文件里的内容添加进去。完成以上设置后,就可以用手中的私人密钥GitHub 进行认证和通信了。
$ ssh -T git@github.com
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is fingerprint值 .
Are you sure you want to continue connecting (yes/no)? 输入yes
Hi hirocastest! You've successfully authenticated, but GitHub does not
provide shell access.
配置
git config --global user.name xxx #方便产品经理找(怼)你
git config --global user.email yyy #方便产品经理找(怼)你
git config --global push.default simple
git config --global core.quotepath false #防止文件名变成数字
git config --global core.editor "vim" #使用vim编辑提交信息
这些配置都是在写 ~/.gitconfig 文件而已(--globa是指全局设置,应用于所以项目)
代码演示
mkdir git-demo
cd git-demo
git init
touch 1.txt # 编辑第一行文本
git status -sb
git add .
git status -sb
git commit -v
git remote add origin git@xxxxxxxx # 将当前仓库与远程仓库建立联系
git push -u origin master # -u 的意思是将本地分支与远程分支建立联系
基本操作
git init
创建 .git 目录(本地仓库)
git add
将 多行文字 纳入 git 控制范围(stage、历史的舞台)
git commit
存入 .git 目录
git log
展示历史
git show xxx(编号)
具体展现一个历史
git reset --hard xxx(编号)
回退到某个历史
git remote add xxx yyy
添加一个远程仓库,名字为 xxx,地址为 yyy
如果你要修改 yyy,可以使用 git remote set-url xxx zzz
git push
将 .git 上传到另一个目录
git clone
git clone 的作用
- 新建目录 xxx
- 解压远程 .git 目录到 xxx/.git
注:git clone 会帮你新建目录的!所以你别自己建目录!
git pull
更新本地仓库(.git)和本地文件
原则
git push 之前必须 git pull
git pull 之前必须 git commit
git commit 之前有时必须 git add
处理冲突
- git pull 获取最新内容
- git status查看当前状况(查看什么文件发生冲突)
- vi index.html(解决冲突内容)
- git add index.html
- git commit
- git push
更多学习git,推荐文章:http://blog.jobbole.com/78960/