整理Git的命令使用
2016-03-17 13:52
316 查看
Git是一个开源的分布式版本号控制系统,用以有效、快速的处理从非常小到非常大的项目版本号管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源代码的版本号控制软件。能初始化一个新的代码仓库,做一些适当配置。開始或停止跟踪某些文件。暂存或提交某些更新;从远程仓库拉数据下来或者推数据上去。
用于 Linux内核开发的版本号控制工具。与经常使用的版本号控制工具 CVS, Subversion 等不同,它採用了分布式版本号库的方式,不必server端软件支持(注:这得分是用什么样的服务端。使用http协议或者git协议等不太一样。而且在push和pull的时候和server端还是有交互的。
),使源码的公布和交流极其方便。
Git 的速度非常快,这对于诸如 Linux kernel 这种大项目来说自然非常重要。 Git
最为出色的是它的合并跟踪能力。
git status
看状态
git add
增加一个文件到git index [file name] 是将当前更改或者新增的文件增加到Git的索引中,增加到Git的索引中就表示记入了版本号历史中,这也是提交之前所须要运行的一步,比如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中
git log
看你commit的日志
git commit
提交当前工作空间的改动内容。类似于SVN的commit命令。比如'git commit -m "story #3, add user model"'。提交的时候必须用-m来输入一条提交信息
git push
将本地commit的代码更新到远程版本号库中,比如'git push origin'就会将本地的代码更新到名为orgin的远程版本号库中
git push origin HEAD:refs/for/master
把当前分支推送到名为origin的远端的master分支上
git reset
还原您更改合并前的
git rm
从当前的工作空间中和索引中删除文件,比如'git rm app/model/user.rb'
git clone
这是较为简单的一种初始化方式,当你已经有一个远程的Git版本号库,仅仅须要在本地克隆一份。比如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版本号库全然克隆到本地some_project文件夹以下
git init
初始化的版本号库(暂且称为working repository)将会生成两类文件:第一类是版本号库文件夹.git文件夹,它里面存放的是版本号的历史记录信息和实际项目文件的拷贝;你能够把这类版本号库叫做"工作文件夹"(working tree);工作文件夹是一个包括有版本号历史文件夹".git"和项目源文件的文件夹;你能够在工作文件夹中改动你的项目源文件并使用命令"git add"和"git commit"进行版本号管理;
git remote
查看与加入远程仓库
git checkout
Git的checkout有两个作用,其一是在不同的branch之间进行切换,比如'git checkout new_branch'就会切换到new_branch的分支上去。还有一个功能是还原代码的作用,比如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本号中更新回来,未提交的内容所有会回滚。
git pull
从远程获取最新版本号并merge(合并)到本地。它与git fetch的差别是:git fetch仅仅是获取最新版本号,没有合并到本地,可能须要自己进行比較然后再合并的做法。
注意:
1、使用命令"git clone"从一个现有的版本号库克隆出来的新版本号库也是一个工作文件夹(working tree),包括.git文件夹和实际项目源文件;
2、假设使用命令"git init"初始化版本号库,则远程版本号库文件夹下也包括工作文件夹(working tree),当本地版本号库向远程版本号库push时,假设远程版本号库当前成处于要被push的分支上,那么push后的结果不会反映在远程版本号库的工作文件夹(working tree)上,也即:在远程版本号库的文件夹下相应的文件还是之前的旧内容,必须使用命令"git reset --hard"之后才干看到push后的新内容,或者是登陆到远程版本号库文件夹下,使用命令"git config --bool core.bare true"把版本号库的核心属性改动成bare的类型。
Git与Repo的比較
Git操作一般相应一个仓库,而Repo操作一般相应一个项目。即一个项目会由若干仓库组成。
比如,在操作整个Recket项目时使用Repo。而操作当中的某个仓库时使用Git。
在包括隐藏文件夹.git的文件夹下运行git操作。
用于 Linux内核开发的版本号控制工具。与经常使用的版本号控制工具 CVS, Subversion 等不同,它採用了分布式版本号库的方式,不必server端软件支持(注:这得分是用什么样的服务端。使用http协议或者git协议等不太一样。而且在push和pull的时候和server端还是有交互的。
),使源码的公布和交流极其方便。
Git 的速度非常快,这对于诸如 Linux kernel 这种大项目来说自然非常重要。 Git
最为出色的是它的合并跟踪能力。
git status
看状态
git add
增加一个文件到git index [file name] 是将当前更改或者新增的文件增加到Git的索引中,增加到Git的索引中就表示记入了版本号历史中,这也是提交之前所须要运行的一步,比如'git add app/model/user.rb'就会增加app/model/user.rb文件到Git的索引中
git log
看你commit的日志
git commit
提交当前工作空间的改动内容。类似于SVN的commit命令。比如'git commit -m "story #3, add user model"'。提交的时候必须用-m来输入一条提交信息
git push
将本地commit的代码更新到远程版本号库中,比如'git push origin'就会将本地的代码更新到名为orgin的远程版本号库中
git push origin HEAD:refs/for/master
把当前分支推送到名为origin的远端的master分支上
git reset
还原您更改合并前的
git rm
从当前的工作空间中和索引中删除文件,比如'git rm app/model/user.rb'
git clone
这是较为简单的一种初始化方式,当你已经有一个远程的Git版本号库,仅仅须要在本地克隆一份。比如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版本号库全然克隆到本地some_project文件夹以下
git init
初始化的版本号库(暂且称为working repository)将会生成两类文件:第一类是版本号库文件夹.git文件夹,它里面存放的是版本号的历史记录信息和实际项目文件的拷贝;你能够把这类版本号库叫做"工作文件夹"(working tree);工作文件夹是一个包括有版本号历史文件夹".git"和项目源文件的文件夹;你能够在工作文件夹中改动你的项目源文件并使用命令"git add"和"git commit"进行版本号管理;
git remote
查看与加入远程仓库
git checkout
Git的checkout有两个作用,其一是在不同的branch之间进行切换,比如'git checkout new_branch'就会切换到new_branch的分支上去。还有一个功能是还原代码的作用,比如'git checkout app/model/user.rb'就会将user.rb文件从上一个已提交的版本号中更新回来,未提交的内容所有会回滚。
git pull
从远程获取最新版本号并merge(合并)到本地。它与git fetch的差别是:git fetch仅仅是获取最新版本号,没有合并到本地,可能须要自己进行比較然后再合并的做法。
注意:
1、使用命令"git clone"从一个现有的版本号库克隆出来的新版本号库也是一个工作文件夹(working tree),包括.git文件夹和实际项目源文件;
2、假设使用命令"git init"初始化版本号库,则远程版本号库文件夹下也包括工作文件夹(working tree),当本地版本号库向远程版本号库push时,假设远程版本号库当前成处于要被push的分支上,那么push后的结果不会反映在远程版本号库的工作文件夹(working tree)上,也即:在远程版本号库的文件夹下相应的文件还是之前的旧内容,必须使用命令"git reset --hard"之后才干看到push后的新内容,或者是登陆到远程版本号库文件夹下,使用命令"git config --bool core.bare true"把版本号库的核心属性改动成bare的类型。
Git与Repo的比較
Git操作一般相应一个仓库,而Repo操作一般相应一个项目。即一个项目会由若干仓库组成。
比如,在操作整个Recket项目时使用Repo。而操作当中的某个仓库时使用Git。
在包括隐藏文件夹.git的文件夹下运行git操作。
相关文章推荐
- Programming in Java: Multi-threads and interface vs abstract class
- Programming in Java: Multi-threads and interface vs abstract class
- Programming in Java: Multi-threads and interface vs abstract class
- Programming in Java: Multi-threads and interface vs abstract class
- Programming in Java: Multi-threads and interface vs abstract class
- Programming in Java: Multi-threads and interface vs abstract class
- spring cron表达式
- Exchange 2013如何使用数据防丢失
- ListView中的Button或CheckBox点击处理
- Android三种播放视频的方式
- 开发人员都喜欢的网站
- YII2.0 详情介绍
- Struts2 的各种xml 和struts 配置信息 都是一样的
- 就业最难年,看我怎样走向优秀
- android: 带很多tab的指示器的ViewPager
- Android 人脸识别
- 麻省理工-线性代数-第二课
- Android Studio 快捷键 for Mac OS X
- 转载_理解 Objective-C Runtime
- Spring注入失败的几点原因!!