zoukankan      html  css  js  c++  java
  • git 学习笔记

    问题:上传txt文件中文为乱码,但是md文件html 文件都正常

    解决:

    尝试一:

    进入git安装目录找到etc文件,按网上说的 etcgitconfig文件未找到,etcgit-completion.bash文件也未找到,etcinputrc到是有,不过还是放弃了此方案。

    尝试二:

    不使用window的文本编辑器,使用其他编辑器,例如notepad++,atom等,问题解决。

    问题: git客户端ls显示文件列表为乱码,对话框头部中文显示问号

    解决:git输入框右键-选择options-选择text-选择character set 中的utf-8,apply,save

    笔记

    初次配置

    $ git config --global user.name "John Doe"

    $ git config --global user.email johndoe@example.com

    在工作目录中初始化新仓库

    $ git init

    从现有仓库克隆

    $ git clone git://github.com/schacon/grit.git

    如果想重命名clone的仓库

    $ git clone git://github.com/schacon/grit.git mygrit

    mygrit 就是本地仓库的名字

    查看状态  git status

    查看修改内容 

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

    若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的

    忽略某些文件 

    $ cat .gitignore

    *.[oa] *~

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

    文件 .gitignore 的格式规范如下:

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

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

    我们再看一个 .gitignore 文件的例子:

    # 此为注释 – 将被 Git 忽略
    # 忽略所有 .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 版本 1.8.2 以上已经可以使用。

    提交更新 $ git commit

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

    删除 $ rm grit.gemspec

    查看提交历史 $ git log

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

    $ git log -U1 --word-diff  单词层面的对比

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

    撤消操作

    修改最后一次提交$ git commit --amend

    远程仓库的使用

    关联一个远程库  git remote add origin git@server-name:path/repo-name.git  

    查看当前的远程库 git remote

    添加远程仓库 git remote

    从远程库抓取数据 git fetch [remote-name]  eg:git fetch origin 或 git pull

    推送数据到远程库 git push [remote-name]  [branch-name]  git push origin master

    修改本地的远程库

    在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成 paul,可以这么运行:

    $ git remote rename pb paul
    $ git remote
    origin
    paul
    

    注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master

    碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令

    撤销

    git checkout -- readme.txt 

    • 把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    • 总之,就是让这个文件回到最近一次git commit或git add时的状态

    git reset HEAD file git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    分支

    查看分支:git branch
    创建分支:git branch <name>
    切换分支:git checkout <name>
    创建+切换分支:git checkout -b <name>
    合并某分支到当前分支:git merge <name>
    删除分支:git branch -d <name>
    git log --graph命令可以看到分支合并图。 退出时按q键退出
  • 相关阅读:
    Primary key and Unique index
    Hash unique和Sort unique
    Oracle索引扫描算法
    Oracle预估的基数算法
    PGA突破pga_aggregate_target限制
    aix ipcs使用说明
    开窗函数和聚合函数区别
    【39.66%】【codeforces 740C】Alyona and mex
    【81.82%】【codeforces 740B】Alyona and flowers
    Android SDK离线安装
  • 原文地址:https://www.cnblogs.com/wuyuchao/p/8269603.html
Copyright © 2011-2022 走看看