首页 > 其他 > 详细

git

时间:2015-10-26 20:55:22      阅读:313      评论:0      收藏:0      [点我收藏+]

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,这样你可以在不同的机器和办公地点远程操作版本库



git

原文:http://my.oschina.net/yangting880815/blog/522273

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!