git安装
#linux debian || Ubuntu sudo apt-get install git #其他版本的linux,下载git源码 ./config,make && make install #windows 下载exe文件进行安装 开始菜单:“Git”->“Git Bash” $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
把一个文件夹编程git仓库(空的文件夹或者有内容的文件夹都可以)
git init
提交新文件或者修改到版本库(-m后面的文字是本次提交的说明)
git add readme.txt git commit -m "wrote a readme file"
查看版本库状态
git status
查看文件和版本库之间的区别
git diff readme.txt #查看readme.txt版本库和最新版本的区别 git diff HEAD -- readme.txt
查看历史(后面的参数表示一个)
git log --pretty=oneline
版本回退(其实是操作git内部的HEAD指针)
# ^表示回退一个版本,^^表示回退两个版本,回退100个版本git reset --hard HEAD~100 git reset --hard HEAD^
如果你项回到一个版本,不管是过去还是未来(回退后想回来,都可以使用commit_id进行)
# 3628164为commit_id 使用git log 可以查看 git reset --hard 3628164
查看自己的操作历史(很重要的用户找到commit_id进行回退)
git reflog
版本库由工作区,stage和master的自动创建的分支组成,HEAD指针。
原理如下图:
git跟踪的是修改不是文件
git放弃当前工作区的修改
#总之,就是让这个文件回到最近一次git commit或git add时的状态。 #git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原” #git checkout --是放弃当前修改 #git checkout -是切换分支,请分清 git checkout -- filename
git放弃当前缓冲区的修改
#git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。 git reset HEAD filename
#删除版本库的文件
git rm filename git commit -m "test_rm" #如果删错了,那么进行可以进行回退到最新的版本,但是刚刚没有提交的新修改就找不回来了 git checkout filename
git远程仓库
首先在github上申请自己的帐号。
创建SSH Key(在git bush中)
ssh-keygen -t rsa -C "youremail@example.com" #命令生成会生成下面的两个文件,一个公钥(可以告诉任何人),一个私钥(只能自己知道,不要告诉别人)
登录github帐号-->个人管理-->settings-->SSH keys中添加公钥
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
可以添加多个ssh key,这样你可以在不同的机器和办公地点远程操作版本库
原文:http://my.oschina.net/yangting880815/blog/522273