GIT基础
来源:互联网 发布:网络十大禁书百度云 编辑:程序博客网 时间:2024/05/16 09:13
建立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.txtdoc/*.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
- GIT基础
- GIT 基础
- git(基础)
- Git基础
- Git基础
- Git 基础
- Git基础
- Git 基础
- git基础
- git基础
- Git基础
- git 基础
- git基础
- Git 基础
- Git基础
- Git基础
- git基础
- Git基础
- 一张图搞定Android学习路线,非常全面
- Springside4搭建自带例子
- Mysql断电mysql:Table 'xxxxx' is marked as crashed and should be repaired
- pig的基本语法以及高级语法
- listview的局部刷新
- GIT基础
- java.io.FileNotFoundException: C:\horizon.log (拒绝访问。)
- IOS开发——Swift基础篇1
- Android中Dialog自定义对话框
- android-如何通过接口回调来解决Fragment之间的交互
- Struts2 请求一次Action,却执行两次方法的解决
- Android开发之EditText 详解(addTextChangedListener监听用户输入状态)
- 关于验证表单重复提交的问题
- 使用MASM 5编译程序的便利批处理