Git中的文件状态和使用

(暂存区 即Index In Git)

commit 到 local respository的内容,不想push,则使用git reset 将文件状态回转到staged|modified|unstaged:

git reset HEAD^   
git reset --soft HEAD^
git reset HEAD~3    (本地有3次commit未提交时用,也可以git reset HEAD^操作3次)

状态回转用git reset

被delete的内容没有push到远端仓,此时想恢复文件:

git checkout [--] <file or path>         (--是可选的)

git pull时,有些修改不想commit到本地仓时,可以git stash,下面三步:

1. git stash 
2. git pull
3. git stash pop

以树结构查看当前仓库的状态:

gitk --all &

git删除文件:

1. 将文件从仓库删除的同时,当前工作目录(磁盘)上也删除
git rm <file>
git rm -r <path>

2. 将文件从仓库删除,但文件继续保留在当前工作目录(磁盘)上
git rm --cache <file>
git rm -r --cache <path>

时间: 2024-09-30 01:51:55

Git中的文件状态和使用的相关文章

Git中.gitignore文件的使用

??在我们使用git的时候,有时候就不想传一些与代码无关的文件到远程仓库中,比如说编译后的文件,.gitignore就可以帮助我们处理这些文件. 生成.gitignore文件在git bash中使用命令touch .gitignore,就可以在当前目录下生成.gitignore文件 编辑.gitignore文件在git bash中,使用vi .gitignore就可以编辑此文件,编辑结束后按Esc然后按:,最后输入wq表示保存退出,输入q表示不保存退出.这与在Linux终端中的操作是一样的. .

git中忽略文件权限或文件拥有者的改变

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突.明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分.下面笔者自己做了个简单的例子来演示这种情况. 1.修改版本库的文件的权限,然后使用diff查看下改变. $ chmod 777 pack.php $ git diff pack.php git文件权限修改示例 可以看到git把文件权限也列入了版本管理. 2.在另外一个地方clone这个版本

Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍

在Studio里使用Git管理代码的过程中,可以修改.gitignore文件中的标示的方法来忽略开发者想忽略掉的文件或目录,如果没有.gitignore文件,可以自己手工创建.在.gitignore文件中的每一行保存一个匹配的规则例如: 1 2 3 4 5 6 7 # 此为注释 – 将被 Git 忽略 *.a       # 忽略所有 .a 结尾的文件 !lib.a    # 但 lib.a 除外 /TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO b

Git中.gitignore文件不起作用的解决

在Studio里使用Git管理代码的过程中,可以修改.gitignore文件中的标示的方法来忽略开发者想忽略掉的文件或目录,如果没有.gitignore文件,可以自己手工创建.在.gitignore文件中的每一行保存一个匹配的规则例如: # 此为注释 – 将被 Git 忽略 *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件

git中.gitignore 文件

现在项目的根目录放了 .gitignore 文件,并且git远程仓库的项目根目录已经有了 logs文件夹. 由于每次本地运行项目,都会生成新的log文件,但是我并不想提交logs文件夹里面的内容,所以要在.gitignore写logs的规则. 我尝试过添加以下规则 logs/*.log logs/ /logs/ 但是运行git status的时候,始终能看到modified:logs/xx.log . 请问是我的规则编写错误,还是我某个地方有理解错误? 回答一: tl;dr: 正确的做法应该是:

Git中.gitignore文件的配置

参考 https://github.com/github/gitignore/ 中 global目录中  OSX.gitignore 和 Xcode.gitignore 我把这两个文件的内容都放到工程的.gitignore中了. 妥妥的...

Git中三种文件状态及其转换

Git作为一种版本控制解决方案,由于其具有的分布式特性,正被越来越多的用户熟知,一些有名的开源项目,如:Linux kernel,CakePHP,Ruby on Rails等,都在使用Git进行版本管理. 在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作.因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态. 为了说明的方便,现在初始化一个项目,也就是将项目所在目录纳入Git的管理之下.假设项目目录为hello_world,初始化之后,在目录下新建README.txt文

Git文件状态

在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作.因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态. Git库所在的文件夹中的文件大致有4种状态: Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制. Modified:文件已修改,仅仅是修改,并没有进行其他的操作. Staged:暂存状态,执行commit才将修改同步到库中,这时库中的文件和本地文件又变为一致. Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件

对git中文件各个状态的理解

我之前开发java项目的时候也有用过版本管理工具svn,不过老是弄不清楚各个状态之间的关系和操作的含义,最近使用github管理自己的代码和一些笔记,对于一些操作还是不太理解(太笨了...),网上也查过一些零零碎碎的相关内容,不过还是模糊不清.于是我打算较为系统地学习一下git和github.http://git-scm.com/book/zh/v1这个网站系统地介绍了git原理还有操作等等,有兴趣的朋友可以参考学习. 要使用git工具进行版本管理,首先要明白git各种状态的含义.如下图所示,