git

90 阅读3分钟

Git基本理论

Git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/Index),资源库(Repository或Git Directory),还有远程的git仓库(Remove Directory)

image.png

Workspace:工作区,就是平时存放项目代码的地方

Index/Stage:暂存区,用于临时存放你的改动,事实上它是一个文件,保存即将提交的列表信息

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

Remote Repository:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

image.png

文件操作

文件的四种状态

Untracked: 未跟踪,此文件在文件夹中,但并没有加入到git仓库,不参与版本控制.通过git add 状态变为Staged.

Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹完全一致.这种类型的文件有两种去处,如果它被修改,而变为Modified.如果使用git rm 移出版本库,则成为Untracked文件.

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

Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.执行git reset HEAD filename取消暂存,文件状态为Modified

#查看制定文件状态
git status [文件名]

#查看所有文件状态
git status

#添加所有文件到暂存区
git add . 

#提交暂存区中的内容到本地仓库 -m:提交的信息
git commit -m "信息"

image.png

忽略文件

在主目录下建立“.gitignore”文件

文件规则

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

命令操作

git rm

工作目录中删除指定的文件

如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f

git mv

移动指定文件 改名 git mv file_from file_to

撤消操作

commit --amend 重新提交之前commit的文件
git reset HEAD … 撤销提交到暂存区的文件

撤销commit

git reset --soft HEAD^  ^为撤销上次提交
git reset --soft HEAD~2  为撤销上两次提交

--mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作(默认)
--soft  不删除工作空间改动代码,撤销commit,不撤销git add
--hard  删除工作空间改动代码,撤销commit,撤销git add

blog.csdn.net/weixin_4815…

分支管理

git branch testing  分支创建
git checkout testing 切换分支
git push origin 分支名 --force  强制将分支推送到分支