Git理论和基本命令

Git理论

Git本地有三个工作区域和一个远程仓库:

  • 工作目录(Working Directory)
  • 暂存区(Stage/Index)
  • 资源库(Repository或Git Directory)
  • 远程仓库(Remote Directory)

        如图:

  • Working Directory:工作区,平时存放项目代码的地方。

  • Satge(Index):暂存区,用于临时存放修改的代码,事实上它只是一个文件,保存即将提交到文件列表信息。

  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有提交到所有版本的数据。其中HEAD文件指向最新放入仓库的版本。

  • Remete:远程仓库,托管代码的服务器。

Git基本命令操作

文件操作:

        文件4种状态:

                版本控制就是对文件版本控制,要对文件进行修改、提交等操作,首先要知道文件当前是什么状态,不然可能会提交了现在还不想提交的文件,或者是提交的文件没提交上。

  • Untracked:未跟踪,此文件在并没有加入到git库中,不参与版本控制。通过 git add 命令使该文件状态变为 Staged。
  • Unmodify:文件已经入库,未修改。即版本库中年的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它被修改,而变为 Modified ,如果使用 git rm 移出版本库,则成为 Untracked 状态文件。

  • Modified:文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处,通过 git add 可进入暂存 Staged 状态,使用 git checkout 则丢弃修改,返回到 Unmodify 状态,这个git checkout 即从库中取出文件,覆盖当前修改

  • Staged:暂存状态,执行 git commit 则将修改同步到本地仓库中。同时文件变更为 Unmdify 状态。执行 git reset HEAD filename 取消暂存,文件状态为 Modified。

创建本地仓库的两种方法:一种是创建新的仓库,另一种是克隆远程仓库。

一、创建本地仓库(执行后会生成一个隐藏目录.git):

#在当前目录下创建本地仓库
git init

二、克隆远程仓库:

#将远程服务器上的仓库完全下载到本地
#例:git clone https://gitee.com/xxxxxx/openclass.git
git clone [URL]

三、更新仓库代码

#更新远程仓库 (下载远程代码并合并 git pull)
git pull origin master

#从远程获取所有代码库
git fetch --all

四、查看文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

五、提交文件到本地

#添加所有文件到暂存区。注意后面有一个点
git add .

#提交暂存区中的内容到本地仓库 -m 表示用于写提交内容的注释
git commit -m "备注.."

六、上传文件到远程

#上传远程代码并合并
git push

七、忽略文件

        有时候项目中的一些文件是不需要提交到版本控制器中,所以增加忽略文件的相关配置。

        在主目录下建立.gitigonre文件,此文件有如下规则:

                1、文件中的空行或以井号开始的行将会被忽略;

                2、可以使用Linux通配符。例如:* 代表任意多个字符,? 代表一个字符,[abc] 代表可选字符,{string1, string2, ...} 代表可选的字符串等。

                3、如果名称的最前面有一个感叹号,表示例外规则,将不被忽略;

                4、如果名称的最前面有一个路径分隔符( / ),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

                5、如果名称的最后面有一个路径分隔符( / ),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

#例子
#忽略所有以.txt结尾的文件
*.txt
#lib.txt不被忽略(上一句已经忽略了所有.txt文件)
!lib.txt
#仅忽略项目跟目录下的TODO文件,不包括其他目录temp
/temp
#忽略build/目录下的所有文件
build/
#忽略doc/notes.txt 但不包括doc/server/arch.txt
#只忽略doc文件夹下一层的.txt文件,下一层的下一层不忽略
doc/*.txt


#idea 常用忽略配置
*.class
*.1og
*.lock
#Package Files#
*.jar
*.war
*.ear
target/

#idea
.idea/
*.iml
*velocity.log*

#STS# 
.apt_generated
.factorypath
.springBeans

#IntelliJ IDEA# 
*.iml
*.ipr
*.iws
.idea
.classpath
.project
.settings/
bin/


*.log
tmp/

#rebel
*rebel.xml*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值