版本库:工做区中一个隐藏的".git"文件就是Git的版本库,版本库中包含如下重要内容git
#这个命令,会在"~/.gitconfig"文件中添加信息 #--global参数,用了这个参数,表示你这台机器上全部的Git仓库都会使用这个配置 git config --global user.name "Your Name" git config --global user.email "email@example.com"
#将当前目录变成Git能够管理的仓库,命令执行后,当前目录下多了一个.git隐藏文件 git init
git add 文件名
#若是不执行git add,而直接执行git commit,那么修改内容不会被提交。也就是说git commit只负责把暂存区的修改提交 git commit -m "本次提交的说明" #同时完成git add和git commit两个操做 git commit -am README.md
git log #省略一些没必要要信息 git log --pretty=oneline
#1. HEAD指向当前分支master的最后一次提交 #2. HEAD^指向当前分支master的上一次提交 #3. HEAD^^表示上两个,HEAD~100表示上100个 #4. 注意,若是使用git reset从版本10,退回到版本5,在版本5中使用git log命令,就没法显示6-10版本的相关信息,例如commit id git reset --hard HEAD^
#1. 用来记录你的每一次命令,在这里能找到以前提交的commit id git reflog #2. 利用commit id前进到指定版本,最后一个参数为commit id,是一个哈希值,写4位以上便可 git reset --hard 1094a
git diff #比较工做区与当前版本(已commit中内容)区别 git diff HEAD #比较工做区与当前版本中指定文件区别 git diff HEAD -- 文件名
9.撤销工做区的修改github
#若是不加"--"",就变成了"切换到另外一个分支"的命令 git checkout -- readme.txt
10.撤销暂存区的内容服务器
#注意这是将git add操做撤销,而上面是撤销工做区的修改,其实本质上就是恢复到了指定的版本 git reset HEAD readme.txt
11.从版本库中删除文件ssh
#1. 先在工做区删除,若是此步骤为误删,可使用上面介绍的git checkout -- readme.txt恢复工做区内容 rm test.txt #2. 在暂存区中提交删除 git rm test.txt #3. 提交到版本库 git commit -m "remove test.txt"
12.查工做目录和暂存区的状态,和git log区别在于,后者用于查看commit的信息,前者用于查看当前目录与最新版本的区别,以及暂存区与最新版本的区别分布式
git status
1.使用https url和SSH url均可以将远程项目克隆到本地svn
2.使用ssh克隆时,你必须是你要克隆的项目的拥有者或管理员,且须要先添加 SSH key ,不然没法克隆fetch
3.能够先使用本身电脑建立SSH key公钥和私钥,而后将公钥告诉给github,这样,就能够在本身的电脑上,经过ssh协议,使用私钥来访问github的服务器了url
4.设置流程
1.本机建立建立一个 SSH keyspa
#-t 指定密钥类型,默认是 rsa ,能够省略。 #-C 设置注释文字,好比邮箱。 #-f 指定密钥文件存储文件名,默认文件名为id_rsa(私有密钥)和id_rsa.pub(公开密钥) ssh-keygen -t rsa -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): #输入push文件的时候要输入的密码,能够不输密码直接回车 #Enter same passphrase again: #再次输入密码
2.github上添加公开密钥,从此就能够用私有密钥进行认证了,在SSH Keys中粘贴 id_rsa.pub 文件里的内容版本控制
cat ~/.ssh/id_rsa.pub
cd ~/.ssh #修改私钥,执行命令后提示输入密码,两次都直接回车就能够去掉密码,去掉密码后,git push就再也不须要输入密码 ssh-keygen -p -f id_rsa
#此处也可使用https协议克隆 #克隆后,Git会自动把本地的master分支和远程的master分支对应起来了,远程仓库的默认名称是origin git clone git@github.com:michaelliao/gitskills.git #查看远程库信息 git remote #查看远程库详细信息,若是没有推送权限,就看不到push的地址 #origin git@github.com:michaelliao/learngit.git (fetch) #origin git@github.com:michaelliao/learngit.git (push) git remote -v #删除远程库 git remote rm origin
#1. 建立本地库 #2. 在github上建立仓库 #3. 为本地库关联远程库 #1. 注意michaelliao必须是本身的仓库,若是是别人的,虽然能加上,但push不上去,由于你的SSH Key公钥不在他人的帐户列表中 #2. 添加后,origin为远程仓库别名,这是Git默认的叫法,也能够改为别的 git remote add origin git@github.com:michaelliao/learngit.git
#1. 将本地库中当前分支推送到远程的master分支上 git push origin master #2. 拉取 git pull origin master