一、创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
cd F:
mkdir learngit
pwd F/learngit 显示当前目录
二、通过git init
命令把这个目录变成Git可以管理的仓库
Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git
的目录
接下来把文件添加到版本库
编写一个readme.txt
文件,内容如下:
特别注意千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件
Git
isa version control system.
Git
isfree software.
git add readme.txt
git
commit -m "wrote a readme file"
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
我们修改readme.txt文件
git status
虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff
这个命令看看:
知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add
:
git add readme.txt
同样没有任何输出。在执行第二步git commit
之前,我们再运行git status
看看当前仓库的状态:
git status
git
commit -m "add distributed"
提交后,我们再用git status
命令看看仓库的当前状态:
三、查看历史记录
git log
把readme.txt回退到上一个版本
在Git中,用HEAD
表示当前版本
上一个版本就是HEAD^
上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
如果一直 git reset --hard HEAD^
就会不停的返回上一版本知道最后一个版本版本为止,这时候你再git status 查看版本就会发现看不到后面的版本了,想再回去已经回不去了,肿么办?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个thir dversion
的commit id
是d380.
,于是就可以指定回到未来的某个版本:
上一个版本内容
返回版本之后的内容
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办
再想恢复到append GPL
,就必须找到append GPL
的commit id。Git提供了一个命令git reflog
用来记录你的每一次命令:
git reflog
查看命令历史
Git工作区和暂存区概念
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
所以,git add
命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit
就可以一次性把暂存区的所有修改提交到分支。
git commit
只负责把暂存区的修改提交
那怎么提交第二次修改呢?你可以继续git add
再git commit
,也可以别着急提交第一次修改,先git add
第二次修改,再git commit
,就相当于把两次修改合并后一块提交了:
第一次修改 -> git add
-> 第二次修改 -> git add
-> git commit
添加一个style.css文件 add 并提交之后 手动删除
git reset --hard commit_id
也可以还原回来
(根据
说明备注写好找到命令ID)
创建远程仓库
gitHub账号 [email protected]
https://help.github.com/articles/generating-ssh-keys/s
在哪里添加密匙
添加远程库
登陆GitHub
然后找到“Create a new repo”按钮,创建一个新的仓库:
在Repository name填入learngit
,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
把一个已有的本地仓库与之关联,然后把本地仓库的内容推送到GitHub仓库
在本地的learngit
仓库下运行命令:本地关联到远程库
git remote add origin git
@github.
com:ruoqiang/learngit.git
下一步,就可以把本地库的所有内容推送到远程库上:(第一次推送)
git push -u origin master
在以后的推送或者拉取时就可以简化命令。
git push origin master
总结:
1. 安装好了git 进入当前项目目录(cd F:/learngit) git 直接git init
2.添加文件:git add 文件名 提交文件:git commit –m “提交说明
3.查看文件变更状态 git status 比较文件版本之间的不同 git diff
4.使用命令git reset --hard commit_id
。版本的历史之间切换
切换前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
命令窗口关闭之后要返回版本,用git reflog
查看命令历史,以便确定要回到哪个版本。
5.每次修改,如果不add
到暂存区,那就不会加入到commit
中。
创建远程仓库
1.创建SSH Key
ssh-keygen -t rsa -
C"[email protected]"
设置密码是可以为空一直回车知道不提醒了为止
msysgit 下 确认ssh-agent 的可用性
然后eval $(ssh-agent -s)
添加 SSH key 到ssh-agent
ssh-add ~/.ssh/id_rsa
可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥
2:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
在Key文本框里粘贴id_rsa.pub
文件的内容(打开文件复制里面的内容贴进去
)
6. 关联远程
要关联一个远程库,使用命令git remote add origin [email protected]:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
参考链接