现在的位置: 首页 > 综合 > 正文

git使用说明

2018年10月29日 ⁄ 综合 ⁄ 共 2220字 ⁄ 字号 评论关闭

1.     创建git项目

    使用git的第一步是创建一个git项目。这一步需要在github网站上完成,在网站中创建一个全新的repository。如果我们之前在本地完成一个项目,想要将该项目发布到github,则此时新建的repository不要有任何文件,即使是README这样的文件,然后我们可以按照如下流程完成创建:

      a)       cd localproject

      b)       git init

      c)       git add * //将目录下所有的文件添加到git项目中;

      d)      git commit –m “add a message”;

      e)       git remote add origin https://github.com/username/***.git

      f)        git push origin master.

上述步骤完成之后,我们本地的项目就上传到github下指定的repository下。在一开始我们提到,不要在创建repository时添加任何文件,否则我们不能正常提交,因为github上的初始版本和本地版本不一致。

    如果我们是要对上述项目做二次开发,则我们可以从github网站上下载该项目,然后本地修改。流程如下:

      a)       git clone https://github.com/username/***.git newdirectory

      b)       cd newdirectory

      c)       modify some files

      d)      git commit –a “modify theproject”// shorthand for “add and commit”

      e)       git push origin master

流程第一步是从github上clone一个项目到本地,然后我们做修改,最后再提交。

上述流程就是很多博客中说的1分钟学会github托管。但是只会上面的操作不足以应对平时的各种需求,我们还需要进一步了解git。

2.     git的状态转换

    针对本地的一个项目,如果不是从github上下载,则所有文件一开始都属于untracked状态,否则都属于tracked状态。属于untracked状态的文件,如果我们不将其添加到git中,任意的修改都不会影响git状态。所以如果是我们想要保存到git中的文件,我们首先要将其添加到git中,命令就是git add。添加之后的文件就属于tracked状态。tracked状态本身又有三个子状态:modified,staged和committed。一个未经修改的文件被添加到git中之后将会是staged状态,此时我们运行git
commit将会使这个文件变为committed状态。变为committed状态之后,git就为该项目生成了一个snapshot,我们就可以将其push到github中。一个被commit的文件如果被修改,其状态又会变为modified状态,等待新的add和commit。如果我们想将一个文件从项目中除名,可以采用git rm命令。不加--cached参数的rm命令将会物理删除文件,添加该选项将会把文件从git项目中删除,但是不物理删除。文件的状态也变为untracked状态。git中文件状态转换关系如下图:

                                                                                        图1 git文件的状态转换

3.     git文件过滤

    在项目开发过程中,会存在很多临时文件,比如备份文件~、和对象文件.o等等。这些文件无需添加到git中。我们可以在工程根目录下设置一个.gitignore文件指明无需添加的文件。该文件内容很简单:

      *.o #表示忽略目标文件

      *~ #表示忽略备份文件

      .* #表示忽略隐藏文件

    通过设定该文件,当我们用git add 添加一个目录时,会自动忽略掉符合上面规则的所有文件。

4.     远程协作

    当我们采用git clone从远程下载一个项目时,git会为我们这个项目自动添加一个远程repository,名为origin。我们还可以通过命令:git remote add [shortname] [url]来添加新的repository作为我们下载上传的目标。下载时我们可以采用git clone/fetch/pull来完成。上传时采用git push [remote-name] [branch-name]完成。

5.     回滚

    回滚操作可以让我们回归到之前的版本,取消错误的commit。主要有两种方式:revert和reset。git revert 命令会通过一个新的commit 来使仓库倒退一个commit。执行git revert cc3a9d3a5820b16bca3c1761efb5885b90371e94被回滚到hash值所在的commit。git reset是指将当前head的内容重置,不会留任何痕迹。执行git reset d5bb1731bf32fb62dc7eedc573da41fa31e27151 --hard
会直接回到hash值那时的commit状态,之后发生了什么都不会出现在commit log里。不过该命令要慎重使用,因为回滚之后的commit都将消失,修改过的文件也会被删除。

【上篇】
【下篇】

抱歉!评论已关闭.