12、git的基本操作

学习目标:

1、了解git的基本操作

2、为什么要学习Java语言

3、端正学习态度

学习过程:

    上一节课大概用了几个git的命令,本节课我们会对git常用的一些命令进行讲解。在将git命令之前我们先说一下这个忽略文件.gitignore

一、忽略文件.gitignore

    有些项目生成的临时文件,如果我们也提交到git版本上面是非常不妥的。因为bin目录下面的内容只是编译的临时文件,不需要版本管理,所以我们还需要建立一个git忽略文件文件.gitignore 的格式规范如下:

• 所有空行或者以注释符号# 开头的行都会被Git 忽略。

• 可以使用标准的glob 模式匹配。

• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。

• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

示例

此为注释– 将被Git 忽略

*.a # 忽略所有.a 结尾的文件

!lib.a # 但lib.a 除外

/TODO # 仅仅忽略项目根目录下的TODO 文件,不包括subdir/TODO

build/ # 忽略build/ 目录下的所有文件

doc/*.txt # 会忽略doc/notes.txt 但不包括doc/server/arch.txt

比如我们经常在在android项目中我们就

bin/

gen/

还有其他的一些常见的配置,一下是某个maven项目的需要忽略的文件和目录

# .gitignore for maven 
target/

*.releaseBackup

# web application files
#/web-app/WEB-INF


# IDE support files
/.classpath
/.launch
/.project
/.settings
/*.launch
/*.tmproj
/ivy*
/eclipse


# default HSQL database files for production mode
/prodDb.*


# general HSQL database files
*Db.properties
*Db.script


# logs
/stacktrace.log
/test/reports
/logs
*.log
*.log.*


# project release file
/*.war

二、提交

    在此之前,请一定要确认还有什么修改过的或新建的文件还没有git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用git status 看下,是不是都已暂存起来了,然后再运行提交命令git commit:

Git 提供了一个跳过使用

暂存区域的方式,只要在提交的时候,给 git commit 加上-a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤提交

git commit -m "描述信息"

git commit -a -m '描述信息'

三、查看状态命令git status

git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   liubao-provider/src/test/resources/application.properties
        modified:   liubao-provider/src/test/resources/dubbo.properties
        modified:   liubao-web/pom.xml
        modified:   liubao-web/src/main/resources/dubbo.properties

四、git diff

git  diff 文件名称

  此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用

git diff --cached

命令。(Git 1.6.1及更高版本还允许使用git diff --staged,效果是相同的,但更好记些。)

五、git reset

git reset HEAD

git reset HEAD 命令用于取消已缓存的内容。如果已经添加了可以使用一下命令

git reset 文件名称

git reset 后面可以设置soft,hard,mixed三种方式,还可以指定版本号,可以回到某一个版本的代码,如:

git reset --hard f36801544670e00b2f59a28e19017d2786c4085e

上面的命令会覆盖你本地所有的操作,请谨慎。

六、查看提交记录

git log,大家可以自己操作一下。

七、删除文件

   如果只是在本地删除,那么暂存空间里面还是有这个文件的,先把本地文件删除,然后再删除暂存空间

git rm grit.gemspec

   我们想把文件从Git 暂存区域移除中删除,但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆.a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在.gitignore 文件中补上,用--cached 选项即可:

git rm --cached readme.txt

   如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。可以用以下命令完成此项工作

git rm <file>

    如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

    如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git rm --cached <file>

八、移动文件

   既然如此,当你看到Git 的mv 命令时一定会困惑不已。要在Git 中对文件改名,可以这么做:

$ git mv file_from file_to

   其实,运行git mv 就相当于运行了下面三条命令:

$ mv README.txt README

$ git rm README.txt

$ git add README

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/84970794