GIT基础
2016-01-18 14:57
141 查看
建立git仓库
在现有的目录下创建使用cd命令进入现有项目的目录
git init
git的仓库最好添加上LICENSE以及readme文件
git add LICENSE
克隆现有的仓库
顾名思义,就是拷贝的意思,我们可以从网络上拷贝别人的仓库文件到本地,使用clone 命令即可$ git clone https://github.com/libgit2/libgit2 mylibgit
其中的网站地址是repository的地址,如果命令中没有”mylibgit”,拷贝的文件名为Libgit2,否则就为mylibgit。这句命令在拷贝repository的同时为本地的repository更改了名字。
Git 支持多种数据传输协议。 上面的例子使用的是 https:// 协议,不过你也可以使用 git:// 协议或者使用 SSH 传输协议,比如 user@server:path/to/repo.git 。 在服务器上搭建 Git将会介绍所有这些协议在服务器端如何配置使用,以及各种方式之间的利弊。
检查repository中的文件状态
repository下的文件只可能有两种状态:已跟踪,未跟踪。使用$ git status
命令可以查看repository下面的文件状态,如下图所示,如果有没有被跟踪文件,就会提示”untracked files”,没有被跟踪的文件需要使用add添加到repository,才能实现跟踪,如图所示
再调用一次 “git status”,会发现文件的状态被改变了,变成了
changes to commited:
说明文件已经被跟踪,处于暂存状态。add命令的功能是把文件添加到下一次提交,如果在修改文件之后,不使用add命令,那么该文件的当前版本就会在未跟踪区,修改前的版本在跟踪区。因此文件与add的关系如下:
修改后的文件(或者新建的文件)在未跟踪区->git add filename ->添加到跟踪区
忽略系统自动生成的文件
在使用不同的编译器的时候,有许多系统自动生成的工程文件,如果不想git总是提示未跟踪这些文件,可以使用 cat .gitignore命令$ cat .gitignore *.[oa] *~
这段代码告诉git忽略编译器生成的.o和.a文件,也忽略以波浪线’~’结尾的文件,下面是一些正则表达式,忽略不同的文件
# no .a files *.a # but do track lib.a, even though you're ignoring .a files above !lib.a # only ignore the TODO file in the current directory, not subdir/TODO /TODO # ignore all files in the build/ directory build/ # ignore doc/notes.txt, but not doc/server/arch.txt doc/*.txt # ignore all .pdf files in the doc/ directory
上面表达式中的#是注释
查看暂存区与工作区的区别
可以使用git diff
这句命令只能查看上一次add之后暂存区与工作区文件的区别,而不是上一次commit之后暂存区与工作区文件的区别,如果在diff之前add了所有的文件,执行diff以后将看不到任何变化
如果要查看已经提交和暂存区的区别,即下次要commit的内容,可以使用
git diff -staged
提交文件
通常情况下,提交文件有两个步骤,一个是add, 一个是commit,其中add将工作区的文件暂存到暂存区,commit将暂存区的文件提交到repository,但是这样国语繁琐,可以一步到位,使用$ git commit -a -m "commit in one step"
其中-a参数是跳过add指令,可以将已经跟踪的文件全部提交
删除文件和移动文件
手动删除的文件,在使用git status时会提示,被删除的文件,可以使用$ git rm filename $ git mv file_from file_to
第一条命令彻底删除一个文件。finename也可以使用shell的正则表达式方式,删除特定的文件;第二条命令,将file_from移动到file_to
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle
- 使用GIT进行源码管理――GUI客户端小结
- 使用git代替FTP部署代码到服务器的例子
- linux系统安装git及git常用命令
- 分享下自己总结的Git常用命令
- Git 常用命令速查表(图文+表格)