一、Git的一些命令操作----创建版本库、增加文件到Git库、时光机穿梭、远程仓库
2015-08-04 15:10
507 查看
具体详细教程请链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
我这里只是记录一些常用命令
1、创建版本库
ps:执行完上面的git init后会在www文件夹下出现一个.git文件夹
2、将www目录下的文件及文件夹添加到Git仓库中
ps:上面的add只是将文件增加到Git的暂存区,要想真正添加到Git仓库中用commit命令
3、时光机穿梭
3.1工作区状态查看
3.2版本回退
查看提交历史:
ps:这个commit id在后面的版本回退非常重要
返回上一版本:
ps:^表示返回上一版本,^^表示返回上上一版本.....
按commit id回退版本:
ps:这里的3628164为commid id的前几位,因为我们只需要让这个id唯一标识,一般为前6、7位
查看命令历史:
3.3查看工作区和版本库中最新的版本的区别(readme.txt文件的区别)
3.4撤销修改
丢弃工作区的修改:
ps:这里有两种情况:
一种是
一种是
总之,就是让这个文件回到最近一次
撤销掉暂存区的修改:
ps:将暂存区的内容重新放回工作区。
3.5删除文件
一是确实要从版本库中删除该文件,那就用命令
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
4、远程仓库
前提,已经将工作区生成的ssh keys放到远程仓库中。远程有一个空库learngit
4.1添加远程库
ps:添加后,远程库的名字就是
4.2把本地库的所有内容推送到远程库上
ps:把本地库的内容推送到远程,用
ps:第一次推送会有警告,一般直接yes就可以了,你也可以与远程库信息核对后在yes
以后推送:
4.3从远程库克隆
我这里只是记录一些常用命令
1、创建版本库
$ cd /c/wamp/www #进入c:wamp/www目录下面 $ git init #将该文件夹变为Git可管理的版本库
ps:执行完上面的git init后会在www文件夹下出现一个.git文件夹
2、将www目录下的文件及文件夹添加到Git仓库中
$ git add . $ git add test.txt #只添加文件test.txt $ git commit -m "add the file"
ps:上面的add只是将文件增加到Git的暂存区,要想真正添加到Git仓库中用commit命令
3、时光机穿梭
3.1工作区状态查看
$ git status #查看工作区的状态 $ git diff #查看具体的修改内容
3.2版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id
查看提交历史:
$ git log $ git log --pretty=oneline # 一行显示,前半段是commit id,后本段是描述
ps:这个commit id在后面的版本回退非常重要
返回上一版本:
$ git reset --hard HEAD^
ps:^表示返回上一版本,^^表示返回上上一版本.....
按commit id回退版本:
$ git reset --hard 3628164
ps:这里的3628164为commid id的前几位,因为我们只需要让这个id唯一标识,一般为前6、7位
查看命令历史:
$ git reflog
3.3查看工作区和版本库中最新的版本的区别(readme.txt文件的区别)
$ git diff HEAD -- readme.txt
3.4撤销修改
丢弃工作区的修改:
$ git checkout -- readme.txt
ps:这里有两种情况:
一种是
readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是
readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次
git commit或
git add时的状态。
撤销掉暂存区的修改:
$ git reset HEAD readme.txt Unstaged changes after reset: M readme.txt
ps:将暂存区的内容重新放回工作区。
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用
HEAD时,表示最新的版本。
3.5删除文件
一是确实要从版本库中删除该文件,那就用命令
git rm删掉,并且
git commit:
$ git rm test.txt rm 'test.txt' $ git commit -m "remove test.txt" [master d17efd8] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt
4、远程仓库
前提,已经将工作区生成的ssh keys放到远程仓库中。远程有一个空库learngit
4.1添加远程库
$ git remote add origin git@github.com:michaelliao/learngit.git
ps:添加后,远程库的名字就是
origin,这是Git默认的叫法,也可以改成别的,但是
origin这个名字一看就知道是远程库。
4.2把本地库的所有内容推送到远程库上
$ git push -u origin master Counting objects: 19, done. Delta compression using up to 4 threads. Compressing objects: 100% (19/19), done. Writing objects: 100% (19/19), 13.73 KiB, done. Total 23 (delta 6), reused 0 (delta 0) To git@github.com:michaelliao/learngit.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
ps:把本地库的内容推送到远程,用
git push命令,实际上是把当前分支
master推送到远程。由于远程库是空的,我们第一次推送
master分支时,加上了
-u参数,Git不但会把本地的
master分支内容推送的远程新的
master分支,还会把本地的
master分支和远程的
master分支关联起来,在以后的推送或者拉取时就可以简化命令。
ps:第一次推送会有警告,一般直接yes就可以了,你也可以与远程库信息核对后在yes
以后推送:
$ git push origin master
4.3从远程库克隆
$ git clone git@github.com:michaelliao/gitskills.git Cloning into 'gitskills'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done.
相关文章推荐
- flask获取表单以enctype="multipart/form-data"格式发送的数据
- SQLALCHEMY_BINDS 多数据源 count() 问题解决
- JSPatch – 动态更新iOS APP
- openstack相关
- Consul 简介
- Java中注解的应用
- Myeclipse如何使用Maven添加jar包
- mysql查询更新时的锁表机制分析
- js中&& 和 ||
- Spark中hash-based 和 sort-based的对比分析
- 鼠标悬停,图片变色
- 云存储结构模型
- ios--c DAY_6
- UI_Stepper
- 如何解决ios SIGPIPE 导致的崩溃
- 【公开课:Java开源框架服务及CEP深入剖析】直播QQ群:228977971
- Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)
- Vim 自动显示行号 高亮 缩进
- java-Dom创建和解析xml
- AT编程常见问题