• Git篇(基础)


      安装过程省略...

      至于安装目录的有关功能,略过...

      关于初次使用的关键配置命令

      1、配置基本信息,该信息将保存在该用户目录下的.gitconfig文件内

    配置用户信息
    $ git config --global user.name "xxx" $ git config --global user.email xxx@example.com

    配置文本编辑器与差异分析工具
    $ git config --global core.editor xxx
    $ git config --global merge.tool xxx

    查看该配置文件所有配置信息
    $ git config global --list

    如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。  

      2、关于仓库的创建、克隆与更新

    在工作目录初始化新仓库
    $ git init

    从已有仓库克隆项目
    $ git clone [url] [newname]

    检查当前文件状态
    $ git status

    跟踪新文件(纳入版本控制)
    $ git add xxx
    (这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:
    可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能
    用于合并时把有冲突的文件标记为已解决状态等)

    提交更新
    $ git commit
    $ git commit -a  (可以跳过git add步骤)
    $ git commit -m "xxx"

      3、对文件的操作

    忽略某些文件(我们需要新建一个.gitignore文件,列出要忽略的文件模式),规格如下:
    • 所有空行或者以注释符号  开头的行都会被 Git 忽略。
    • 可以使用标准的 glob 模式匹配。
    • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
    • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

      举个栗子:


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

    # 但 lib.a 除外
    !lib.a

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

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

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

    # 忽略 doc/ 目录下所有扩展名为 txt 的文件
    doc/**/*.txt

      我们查看哪些文件被修改过可以通过git status来查看,但是如果查看具体修改了哪些可以:

    查看哪些地方做了怎样的修改
    $ git diff

    查看已经暂存起来的文件和上次提交时的快照之间的差异
    $ git diff --cached

      注意,单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异

      对文件的移除,分两种情况:

    如果只是对该文件取消跟踪
    $ git rm --cached xxx
    $ git rm -f --cached xxx (强制)
    $ git rm -r --cached xxx  (用于目录,递归)

    如果顺便删除此文件
    $ git rm xxx
    $ git rm -f xxx (强制)
    $ git rm -r xxx  (用于目录,递归)

    也可以使用 glob 模式,如
    $ git rm log/*.log

      文件的重命名(与通常的移动命令一致,但是在Git里移动没有意义)

    对文件改名
    $ git mv [file_old_name] [file_new_name]

    其实,运行 git mv 就相当于运行了下面三条命令:
    $ mv README.txt README
    $ git rm README.txt
    $ git add README

      4、查看更新历史

    查看更新历史记录
    $ git log

    常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
    $ git log -p -2

    进行单词层面的对比,比行层面的对比
    $ git log -U1 --word-diff
    (在此之中新增加的单词被 {+ +} 括起来,被删除的单词被 [- -] 括起来。
    在进行单词层面的对比的时候,使用U1的意思是上下文( context )行数从
    默认的 3 行,减为 1 行。)

    仅显示简要的增改行数统计
    $ git log --stat

    指定使用完全不同于默认格式的方式展示提交历史
    $ git log --pretty=[oneline]|[short]|[full]|[fuller]

    仅显示最近的 n 条提交
    $ git log -(n)

    仅显示指定时间之后的提交
    $ git log [--since] | [--after]

    仅显示指定时间之前的提交。
    $ git log [--until] | [--before]
    仅显示指定作者相关的提交
    $ git log [--author]

    仅显示指定提交者相关的提交
    $ git log [--committer]

       

      5、撤回、修改、取消操作

    修改最后一次提交(撤回提交)
    $ git commit --amend

    取消暂存的文件
    $ git reset HEAD xxx

    取消对文件的修改
    $ git checkout -- xxx

      

      6、远程仓库的使用

    查看当前的配置有哪些远程仓库
    $ git remote

    显示对应的克隆地址
    $ git remote -v

    要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用
    $ git remote add [shortname] [url]

    我们可以在项目里用字符串 pb 指代对应的仓库地址。

    从远程仓库抓取数据到本地
    $ git fetch [remote-name] | pb

    推送数据到远程仓库
    $ git push origin master

    查看远程仓库信息
    $ git remote show origin

    修改某个远程仓库在本地的简称
    $ git remote rename [oldname] [newname]

    移除对应的远端仓库
    $ git remote rm [name]

      7、对标签的管理

      Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。

      

    列出现有标签
    $ git tag

    创建一个轻量级的标签
    $ git tag v1.0
    创建一个含附注类型的标签
    $ git tag -a v1.0 -m 'xxx'

    查看相应标签的版本信息
    $ git show v1.0

    如果有自己的私钥,可以用 GPG 来签署标签
    $ git tag -s v1.0 -m 'xxx'  

    在后期对早先的某次提交加注标签
    只要在打标签的时候跟上对应提交对象的校验和(或前几位字符)即可
    $ git tag -a v1.0 xxx

    默认情况下,git push 并不会把标签传送到远端服务器上运行 
    $ git push origin v1.0

    一次推送所有本地新增的标签
    $ git push origin --tags

      以上命令参考自Git官网,放心使用。

      个人邮箱  zuoyuip@qq.com

      后续更新分支说明,欢迎指出不足。

      “人得自己成全自个儿”。

  • 相关阅读:
    add to svn ignore disabled
    Zend 安装 OpenExplorer插件
    Win7系统怎么清理注册表残留?【系统天地】
    永久免费Win10企业版激活密钥大全【系统天地】
    Win7取消自动锁屏的方法步骤【系统天地】
    手把手教你怎么激活windows10专业版【系统天地】
    win8解除网速限制的操作方法【系统天地】
    教你win10系统显卡驱动安装失败的解决方法【系统天地】
    Win7移动硬盘在电脑上不显示怎么办【系统天地】
    Win10运行程序提示不受信任的解决方法【系统天地】
  • 原文地址:https://www.cnblogs.com/1214804270hacker/p/8832325.html
Copyright © 2020-2023  润新知