Git常用命令

2020/06/11 Blog

git基本命令,保留自查。

git 上传本地文件夹到GitHub

$ git init

$ git add .

$ git commit -m "添加注释"

$ git remote add origin https://github.com/uesrname/upload_folder.git

$ git push -u origin master

Note:

  • $ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push

  • git remote 出错:fatal: remote origin already exists.

    • $ git remote rm origin
          
      $ git remote add origin https://github.com/uesrname/upload_folder.git
      
  • git push 出错:error:failed to push som refs to …

    • $ git pull origin master
          
      $ git push origin master (-f)
      

      其中,-f可选,指–force。

git 将更新文件同步到GitHub

$ git add -A

$ git commit -m "添加注释"

$ git push -u origin master

git add 参数比较

  • git add -A 提交所有变化

  • git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new),即Untracked files

  • git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件,即Changed but not updated

git pull 和 git pull –rebase 简单对比

  • git pull = git fetch + git merge
  • git pull –rebase = git fetch + git rebase
    • 执行 git pull --rebase 的时候必须保持本地目录干净。即:不能存在状态为 modified 的文件。(存在Untracked files是没关系的)
    • 如果出现冲突,可以选择手动解决冲突后继续 rebase,也可以放弃本次 rebase

设置Git不需要每次push都输入用户名和密码

每次都需要输入用户名和密码是因为采用的是 https 方式提交代码, 如果采用的是 ssh 方式只需要在版本库中添加用户的 sha 的key就可以实现提交时无需输入用户名和密码。

  • 通过如下命令查看当前的remote方式: git remote -v
  • 如果当前是https的,可以通过如下命令修改为ssh: git remote set-url origin git@github.com:uesrname/upload_folder.git

.gitignore忽略规则的匹配语法

  • 空格不匹配任意文件,可作为分隔符,可用反斜杠转义;
  • 以“”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义;
  • 可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式;
  • 以斜杠”/“开头表示目录;”/”结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;”/”开始的模式匹配项目跟目录;如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录;
  • 以星号”**“通配多个字符,即匹配多个任意字符;使用两个星号”***” 表示匹配任意中间目录,比如a/**/z可以匹配 a/z, a/b/z 或 a/b/c/z等;
  • 以问号”?“通配单个字符,即匹配一个任意字符;
  • 以方括号”[]“包含单个字符的匹配列表,即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a,要么匹配一个b,要么匹配一个c;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配。比如[0-9]表示匹配所有0到9的数字,[a-z]表示匹配任意的小写字母);
  • 以叹号”!“表示不忽略(跟踪)匹配到的文件或目录,即要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。需要特别注意的是:如果文件的父目录已经被前面的规则排除掉了,那么对这个文件用”!”规则是不起作用的。也就是说”!”开头的模式表示否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用”!”也不会再次被包含。可以使用反斜杠进行转义。

More details

Search

    欢迎关注我的微信公众号

    博士的沙漏

    Table of Contents