zoukankan      html  css  js  c++  java
  • Git的使用方法

    开发环境

    OS:Linux Ubuntu 14.04.4 (中文语言)

    Python: 2.7.6

    Git:

    版本控制软件,版本控制软件让你能够拍摄处于可行状态的项目的快照。修改项目(如实现新功能)后,如果项目不能正常运行,可恢复到前一个可行状态,通过使用版本控制软件,你可以无忧无虑地改进项目,不用担心项目因你犯了错而遭到破坏。对大型项目来说,这显得尤其重要,但对于较小的项目,哪怕是只包含一个文件的程序,这也大有裨益。

    一、使用方法

    (1)安装git

    apt-get install git

    若get不到,可尝试apt-get update后,再执行apt-get install git

    (2)配置git的用户名与邮件地址

    git config --global user.name “dyz”

    git config --global user.email xxx@qq.com

    若未给上相关信息,则在提交的时候会要求给上

    (3)创建项目

    以一个程序来表现git的使用方法

    创建一个练习git的目录:mkdir /python/gitpractice

    进入该目录,创建一个python文件:

    gittest,py:

    print(“test,setup1”)

    (4)创建一个忽略文件

    该文件的目的是忽略”.pyc”这一类的文件

    .gitignore:

    *.pyc

    该文件为开头是点,在系统中为隐藏文件,若编辑器无法编辑,需更改编辑器的配置

    ps:若python版本为3.x,会创建一个__pycache__目录,则该文件的内容为

    .gitignore

    __pycache__/

    (5)初始化仓库

    在第(3)步创建的目录中执行:git init

    得到提示:

    “初始化空的 Git 版本库于 /root/.git/”

    输出表明 Git 在 git_practice 中初始化了一个空仓库。仓库是程序中被 Git 主动跟踪的一组文件。 Git 用来管理仓库的文件都存储在隐藏的 .git/ 中,你根本不需要与这个目录打交道,但千万不要删除这个目录,否则将丢弃项目的所有历史记录。

    (6)检查状态的命令

    git status

    结果:

    位于分支 master

    初始提交

    未跟踪的文件:

      (使用 "git add <file>..." 以包含要提交的内容)

            gittest.py

            .gitignore

    提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

    在 Git 中, 分支 是项目的一个版本。从这里的输出可知,我们位于分支 master 上。你每次查看项目的状态时,输出都将指出你位于分支 master 上。接下来的输出表明,我们

    将进行初始提交。 提交是项目在特定时间点的快照。

    Git 指出了项目中未被跟踪的文件,因为我们还没有告诉它要跟踪哪些文件。接下来,我们被告知没有将任何东西添加到当前提交中,但我们可能需要将未跟踪的文件加入到仓库中

    (7)将文件加入到仓库

    git add . #该点表示将所有文件加入到仓库

    若只想加指定的文件:

    git add gittest.py

    再次查看状态:

    git status

    位于分支 master

    初始提交

    要提交的变更:

      (使用 "git rm --cached <file>..." 撤出暂存区)

            新文件:       .gitignore

            新文件:       gittest.py

    它不提交这些文件,而只是让 Git 开始关注它们。现在我们检查项目的状态时,发现 Git 找出了需要提交的一些修改。标签 “新文件”意味着这些文件是新添加到仓库中的

    (8)提交

    git commit -m "setup1"

    将这两个新文件提交,相当于拍摄了该项目此时的快照。

    -m 表示给这次提交给上备注信息

    提交完成后,git status查看则表示此时没有无文件要提交,干净的工作区域

    ps:此时提交的俩个文件为新文件,所以不需要加-a

      若提交的为多个修改的文件,需加上-a,表示提交所有的修改的文件,可用

    git commit –am “setup 1”

    若提交指定的文件,可用 git commit –i 文件名 –m “setup1”

    (9)查看提交历史

    每次提交时, Git 都会生成一个包含 40 字符的独一无二的引用 ID 。它记录提交是谁执行的、提交的时间以及提交时指定的消息。并非在任何情况下你都需要所有这些信息

    git log  #git log 该命令查看得到是详细的信息

    因此,Git 提供了一个选项,让你能够打印提交历史条目的更简单的版本:

    git log –pretty=oneline #该命令查看得到的是只有备注信息与ID信息的模式

    (10)修改文件提交

    我们给gittest.py加上一条内容:print(“test”,”setup2”)

    查看git status:此时我们可以看到提示“gittest.py”这个文件较之上次提交已经被修改了

    我们可以选择再次提交它,让修改后的文件成为一个新的快照

    git commit –am “setup2”

    (11)撤销修改之回到最后一次提交

    我们给gittest.py加上一条内容:print(“test”,”setup3”)

    我们可以提交所做的修改,但这次我们不提交所做的修改,而要恢复到最后一个提交(我们知道,那次提交时项目能够正常地运行)。为此,我们不对 执行任何操作 —— 不删除刚添加的代码行,也不使用文本编辑器的撤销功能

    执行:git checkout .    注意“点”

    命令 git checkout 让你能够恢复到以前的任何提交。命令 git checkout . 放弃自最后一次提交后所做的所有修改,将项目恢复到最后一次提交的状态。

    这些再查看git status,没有修改的文件

    以及文件的内容,内容应为:

    print("test","setup2")

    ps:该情形为错写的内容未提交

    (12)撤销修改之回到指定的一次提交

    a.查看提交历史的ID:git log –pretty=oneline

    b.执行git reset –hard  id的前四位及以上,如git reset --hard 253f(第一次提交的ID)

    这个时候来查看git log,log中只有第一次提交的记录

    查看文件,内容只有print("test","setup1")

    (13)删除仓库

    若想删除这个仓库

    rm  -rf .git

    删除这个仓库,不会影响这个仓库原先关注的文件

    二、相关命令

    安装git : apt-get install git

    初始化仓库:git init

    查看git状态:git status

    添加新文件到仓库:git add . /git add 文件名

    提交新文件:git commit –m “xxx”

    提交所有修改的文件:git commit –am “xxxx”

    提交指定修改的文件:git commit –i 文件名 -m “xxxx”

    查看提交历史:git log/git log –pretty=oneline

    撤销到最后一次提交:git checkout .  (适用未提交)

    撤销到指定一次提交:git reset –hard 提交记录ID前四位及以上

    git checkout 记录ID   (核实提交ID,进入分离头指针状态)

    git checkout master       (回到master分支)

    git commit命令帮助:git help commit  (详细)

    用法:git commit [选项] [--] <路径规则>...

        -q, --quiet           提交成功后不显示概述信息

        -v, --verbose         在提交说明模板里显示差异

    提交说明选项

        -F, --file <文件>     从文件中读取提交说明

        --author <作者>       提交时覆盖作者

        --date <日期>         提交时覆盖日期

        -m, --message <说明>  提交说明

        -c, --reedit-message <提交>

                              重用并编辑指定提交的提交说明

        -C, --reuse-message <提交>

                              重用指定提交的提交说明

        --fixup <提交>        使用 autosquash 格式的提交说明用以修正指定的提交

        --squash <提交>       使用 autosquash 格式的提交说明用以压缩至指定的提交

        --reset-author        现在将该提交的作者改为我(和 -C/-c/--amend 参数共用)

        -s, --signoff         添加 Signed-off-by: 签名

        -t, --template <文件>

                              使用指定的模板文件

        -e, --edit            强制编辑提交

        --cleanup <default>   设置如何删除提交说明里的空格和#注释

        --status              在提交说明模板里包含状态信息

        -S, --gpg-sign[=<key id>]

                              GPG 提交签名

    提交内容选项

        -a, --all             提交所有改动的文件

        -i, --include         添加指定的文件到索引区等待提交

        --interactive         交互式添加文件

        -p, --patch           交互式添加变更

        -o, --only            只提交指定的文件

        -n, --no-verify       绕过 pre-commit 钩子

        --dry-run             显示将要提交的内容

        --short               以简洁的格式显示状态

        --branch              显示分支信息

        --porcelain           机器可读的输出

        --long                以长格式显示状态(默认)

        -z, --null            条目以NUL字符结尾

        --amend               修改先前的提交

        --no-post-rewrite     绕过 post-rewrite 钩子

        -u, --untracked-files[=<模式>]

                              显示未跟踪的文件,“模式”的可选参数:all、normal、no。(默认:all)

  • 相关阅读:
    iOS:Core Data 中的简单ORM
    Win8:Snap 实现
    js: 删除node的所有child
    WinJS:Listview item 设置背景透明
    iOS: 消息通信中的Notification&KVO
    win8: 清除iframe的缓存
    What's New in iOS7,iOS7新特性介绍
    "Entity Framework数据插入性能追踪"读后总结
    夜,思考——我想要的到底是什么?
    【查询】—Entity Framework实例详解
  • 原文地址:https://www.cnblogs.com/dyzne/p/6812904.html
Copyright © 2011-2022 走看看