一、git初体验
msysgit是Windows版的Git,从 http://msysgit.github.io/ 下载,然后按默认选项安装即可。
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
github的SSH配置如下:
1、设置Git的user name和email:
$ git config --global user.name "liujin"
$ git config --global user.email "457375608@qq.com"
2、生成SSH密钥过程:
查看是否已经有了ssh密钥:
cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
生存密钥:
$ ssh-keygen -t rsa -C “457375608@qq.com”
按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa.pub
3.在github上添加ssh密钥
clip < id_rsa.pub
打开https://github.com/ ,登陆>settings>SSH keys>add ssh key,然后粘贴ssh。
4.测试:ssh git@github.com
admin_liujin@IDEA-PC ~/.ssh
$ ssh git@github.com
Hi 457375608! You've successfully authenticated, but GitHub does not provide she
ll access.
Connection to github.com closed.
二、使用github
1、创建远程空仓库(服务器)
$ cd ~git
$ mkdir test.git
$ cd test.git
$ git --bare init
2、本地仓库关联github仓库
$ git init
$ vim test.txt
$ git add .
$ git commit -m "test"
$ git remote add origin git@github.com:457375608/test.git
$ git push origin master
3、克隆github仓库到本地
$ git clone git@github.com:457375608/test.git
$ cd test
$ ls
$ vim test.txt
$ git add .
$ git commit -m "20150726"
$ git push origin master
三、分支
1、查看分支:
查看本地分支:
$ git branch
查看远程分支
$ git branch -r
2、创建分支:
创建本地分支(建立分支后,仍停留在当前分支,切换分支:git checkout branchName)
$ git branch branchName
创建分支后切换到新分支
$ git checkout -b branchName
3、提交分支:
提交到远程分支
$ git commit -a -m 'my new branch'
git push origin branchName:branchName
如果想把本地的某个分支mybranch提交到远程仓库,并作为远程仓库的master分支
$ git push origin mybranch:master
4、删除分支:
删除远程分支
$ git push origin :branchName
删除本地分支,强制删除用-D
$ git branch -d branchName
5、合并分支
将分支branchName和当前所在分支合并
$ git merge branchName
四、回退
$ git reset --hard HEAD #放弃工作区和index的改动,HEAD指针仍然指向当前的commit.撤销还没commit的merge,其实原理就是放弃index和工作区的改动,因为没commit的改动只存在于index和工作区中。
$ git reset HEAD #放弃暂存区的改动,把暂存区的修改撤销掉(unstage),重新放回工作区
$ git reset--hard HEAD^ #用来撤销已经commit的内容(等价于 git reset --hard HEAD~1) 。原理就是放弃工作区和index的改动,同时HEAD指针指向前一个commit对象。
$ git reset HEAD^ #回退所有内容到上一个版本
$ git reset HEAD^ a.py #回退a.py这个文件的版本到上一个版本
$ git reset --soft HEAD~3 #向前回退3个版本
$ git reset --hard origin/master #将本地的状态回退到和远程的一样
$ git reset 057d #回退到某个版本
五、暂存
git stash save -a '提交到暂存区'
git stash apply stash@{index} 恢复到第?个暂存区
git stash list 查看有几个暂存区
git stash clear 删除所有的暂存区
git stash drop stash@{index} 删除第?个暂存区
六、使用git配置默认编辑器
在提交时,bash会打开一个默认的vi编辑器给提交者填写提交信息。那么在window平台下一些用户喜欢使用其他编辑器,如系统自带的编辑器。我在这里提供一个sublime2编辑器配置方法,其他方法类似。
1.在自己电脑中安装sublime2编辑器
2.在环境变量中的path下配置sublime2的路径,如我的路径为 D:\Program Files (x86)\Sublime Text 2;
3.打开bash界面,输入git config core.editor sublime_text.exe (备注:我没有加上--global,如果希望在当前用户的所有项目中使用的话使用 git config --global core.editor sublime_text.exe)
4.运行git config --list 命令你会发现下面多出来一条这个
5.配置完成后,退出,重启bash
6.你在git commit时会自动打开sublime,保存后记得关闭。