zoukankan      html  css  js  c++  java
  • git学习一——Pro-Git

    1、配置用户名,邮箱

    git config --global user.name "Mike"
    git config --global user.email Mike@example.com

    2、查看配置信息

    git config --list

    也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可

    git config user.name

    3、获取帮助

    git help <verb>
    git <verb> --help
    man git <verb>

     例如 git help config

    4、初始化仓库

    git init

    5、克隆仓库到本地

    git clone url <自定义项目目录名称>

    6、检查当前文件状态

    git status

    7、跟踪新文件

    git add fileName

    8、忽略某些文件

    创建一个名为.gitignore的文件,列出要忽略的文件模式

    cat .gitignore
    *.[oa]
    *~

    第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现 的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件 (比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 log,tmp 或者 pid 目录,以 自动 生成的文档等等。要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。

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

    所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配 任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?) 只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配 (比如 [0-9] 表示匹配所有 0 到 9 的数字)。 

    9、查看具体的修改

    git status只能查看修改过的文件,使用git diff可以查看具体修改的地方

    1)查看尚未暂存的文件更新了哪些部分

    git diff

    这个命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容

    2) 查看已经暂存的文件和上次提交时的快照之间的差异

    git diff --cached

    Note:单单git diff只是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了所有更新过的文件后,运行git diff后却什么也没有,就是这个原因。

    10、提交更新

    每次准备提交前,先用git status查看是不是都已暂存起来了,然后再运行提交命令git commit

    git commit -m description

    在一行命令中提交更新

    记住,提交时记录的是暂存区域的快照,任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。每一次运行提交操作,都是对项目做一次快照,以后可以回到这个状态,或者进行比较。

    11、跳过使用暂存区域

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

    git commit -a -m description

    12、移除文件

    使用git rm命令,从已跟踪文件清单中移除,即从暂存区域移除,并从工作目录中删除指定文件

    git rm fileName

    最后提交的时候,该文件就不再纳入版本管理。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项-f。

    另一种情况是我们需要从git仓库删除某个文件,但希望保留在当前工作目录中。也就是说只是从跟踪清单中删除。比如一些大型日志文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在.gitignore文件中补上,用--cached选项即可

    git rm --cached fileName

      

    13、移动文件

    git mv file_from file_to

    14、查看提交历史 

    git log #按提交时间列出所有的更新,最近的更新排在最上面
    git log -p -2  # -p选项展开显示每次提交的内容差异  -2 则显示最近的两次更新
    git log --stat # 仅显示简要的增改行数统计
    git log --pretty=option  # 指定使用完全不同于默认格式的方式展开提交历史
    git log --pretty=online #将所有提交在一行显示
    git log --pretty=format:"指定格式" # 定制要显示的记录格式
    git log --pretty=format:"%h - %n, %ar:%s"

    限制输出长度还有一些其他常用的选项:

    选项 说明
    -(n) 仅显示最近的 n 条提交
    --since, --after 仅显示指定时间之后的提交。

    --until, --before 仅显示指定时间之前的提交。

    --author 仅显示指定作者相关的提交。

    --committer 仅显示指定提交者相关的提交。 

    15、撤销操作

    1)修改最后一次提交

    撤销刚才的提交操作,可以使用--amend选项重新提交

    git commit --amend

    此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行命令的话,相当于有机会重新编辑提交说明,而所提交的文件快照和之前的一样。

    如果刚才提交时忘了暂存某些修改,可以补充上暂存操作,然后再运行--amend提交 

     2)取消已经暂存的文件

    git reset HEAD <fileName>

    3)取消对文件的修改

    对为暂存区域的文件,取消修改,回到之前的状态 

    git checkout -- <fileName>

    16、远程仓库的使用

    1)查看当前的远程库

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

    2)添加远程仓库

    添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用

    git remote add [shortname] [url]

    3) 从远程仓库抓取数据

    git fetch [remote-name]

    fetch命令只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用git pull命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。

    4)推送数据到远程仓库

    将本地仓库中的数据推送到远程仓库

    git push [remote-name] [branch-name]

    5)查看远程仓库的信息

    git remote show [remote-name]

    6)远程仓库的删除和重命名

    git remote rename orginName newName # 修改某个远程仓库的简短名称
    git remote rm remoteName # 移除对应的远端仓库

    17、打标签

    1)列显现有标签的命令

    git tag

    2) 新建标签

    标签有两种类型:轻量级标签和含附注的标签。

    轻量级标签:像是个不会变化的分支,实际上它就是个指向特定提交对象的引用,保存着对应提交对象的校验和信息的文件

    含附注标签:存储在仓库中的一个独立对象,有自身的校验和信息,包含着标签名字,电子邮件和日期以及标签说明,标签本身也允许使用GPG来签署和验证。

    一般建议使用含附注型标签,以便保留相关信息;如果只是零时性加注标签,或者不需要其他旁注额外信息,用轻量级标签也没问题。

    i. 含附注的标签

    git tag -a tagName -m "description for tag"

    查看相应标签的版本信息,并连同显示打标签时的提交对象。

    git show tagName

    ii. 轻量级标签

    git tag tagName

    3) 后期加注标签

    可以后期对早期某次提交加注标签

    git log --pretty=oneline  # 显示所有历史提交
    git tag -a tagName 校验和  # 打标签时跟上对应提交对象的校验和(或前几位字符) 

    4)分享标签

    默认情况下,git push并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库

    git push remoteName [tagName]

    如果要一次推送所有(本地新增的)标签上去,可以使用--tags选项

    git push remoteName --tags

    18、git命令别名

    git config --global alias.别名 原名

    下面看几个例子

    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    git config --global alias.st status

    现在要输入git commit只需键入git ci即可。

    2)创建新命令

    比如取消暂存文件时输入比较繁琐

    git reset HEAD fileName

    可以设置一下

    git config --global alias.unstage 'reset HEAD --'

    因此只需要输入git unstage fileName即可

    设置last命令

    git config --global alias.last 'log -l HEAD'

    使用git last即可查看最后一次提交信息

  • 相关阅读:
    Silverlight开发历程—动画(实现跑马灯效果)
    将小写金额转换成为大写
    Silverlight—C#代码实现变形特效
    Silverlight开发历程—C#代码添加动画
    Silverlight开发历程—动画(线性动画)
    仿腾讯登录验证码
    光线CMS系统,如何显示幻灯片
    Winform打开窗口时出现“确保已安装文件类型.cs的应用程序”的解决方法
    #2003 – 服务器没有响应 MySQL 无法启动
    根据对方提供的URL获取返回的数据流并保存为XML
  • 原文地址:https://www.cnblogs.com/YangqinCao/p/6786260.html
Copyright © 2011-2022 走看看