Git基本操作

1. 创建SSH key

 ssh-keygen -t rsa -C "youremail@example.com"

2. 更新代码

   git pull
   git fetch  没有merge的pull  没用过这个,不知道好用不

3. 添加文件

  git add .   暂存新增的和修改的文件,不包括已删除的文件(仅限当前目录以及子目录)
  git add -u  暂存修改的和删除的文件,不包括新增的文件
  git add -A 暂存所有文件,包括新增的,修改的,已删除的文件
  git add -p  暂存一部份,会一直提示(y/n)选择是否暂存,很麻烦

4. 提交文件

  git commit -m “本次提交说明” (这里如果不加-m 会强制跳转到编辑器,在里边第一行填写,然后保存即可)
  git commit -am “本次提交说明”  (add 和commit的结合体,,省略了add步骤)
  ***下面这个命令尽量不要使用或者只有自己开发的时候,否则会给队友带来灾难(卧槽明明更新了的,怎么没了??????)
  git commit --amend -m“本次提交说明”   (重新提交,最终只会有一次提交,第二次的提交会覆盖第一次的提交结果,适用于提交完了才发现有几个文件没有添加或者提交信息填写错误的情况)
  git commit -p (提交一部分代码,需要手动确认是否提交   y/n)

5.推送到远程分支

  git push origin 分支      推送本地当前分支到远程对应分支(通常是master)
  git push    origin     本地分支:远程分支(指定提交的本地分支和远程分支)

6.本地分支与远程分支建立关联

  git branch --set-upstream 分支 origin/分支
   这个命令,可以建立本地分支与远程分支的联系,以后在push的时候不用每次都指定分支到了,即直接输入  git push,省略了origin 分支

7.git忽略某些文件

  忽略规则
  以斜杠“/”开头表示目录;
  以星号“*”通配多个字符;
  以问号“?”通配单个字符
  以方括号“[]”包含单个字符的匹配列表;
  以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

一般情况下,我们应该在创建项目之前,建好忽略文件,忽略掉应该忽略的文件;

但是,有时候我们需要临时添加一些忽略文件,这个时候就需要修改 .gitignore文件,以为该文件已经被git追踪,所以我们还要从git版本控制器中将其移除,用下面的命令:

  git rm --cached 文件名    或者       git rm --cached  -r   文件夹   (-r  表示递归)

注意:这样会将该文件从git仓库移除,所以开发人员都做好备份
使用完此命令后,我们需要将修改后的.gitignore和删除的这个文件,一并push到git远程仓库,然后所有开发人员做好自己的备份,然后pull更新,
这样更新下来会将该文件删除掉,,然后我们需要自己将备份的文件拷贝进项目,以后该文件就不会再被git追踪了.以后修改该文件,需要复制粘贴给大家了.
可能有点麻烦,但是我理解的就是这样的了.

8.其他一般用得着的指令

*设置一些快捷指令

  git config --global alias.st status  使用git st 代替 git status 命令
  git config --global alias.co checkout 使用git co 代替git checkout命令
  git config --global alias.ci commit 使用git ci 代替 git commit命令
  以此类推

*其他的一些设置

  git config -l 或 git config --list 列举所有git的配置
  git config --global  color.ui true 让git显示颜色,
  设置commit中的姓名和email,去掉 --global参数则为针对每个repo单独设定姓名和邮箱
  git config --global user.name "your name"
  git config --global user.email "your email"

  大小写问题:
  git config core.ignorecase false        (不推荐)关闭git忽略大小写配置,即可检测到大小写名称更改
  如果遇到大小写问题(保证core.ignorecase true) 调用git mv ABC.java Abc.java  (git status 提示 renamed: ABC.java -> Abc.java)commit  push 即可
  core.ignorecase不为true,同事更新的时候会提示(error: The following untracked working tree files would be overwritten by merge:.......),改为false即可

  总结:
      --global 全局         --local  本仓库
          增配置 git config --global --add configName configValue
          删配置 git config  --global --unset configName   (只针对存在唯一值的情况)
          改配置 git config --global configName configValue
          查配置 git config --global configName
  
   git log -n  仅显示最近n条提交
   git log -p filename    查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录,不显示文件内容修改,git log -p -3 filename 显示最近的3次提交。

以下内容,为日志显示的常用参数

-p
按补丁格式显示每个更新之间的差异。

--stat
显示每次更新的文件修改统计信息。

--shortstat
只显示 --stat 中最后的行数修改添加移除统计。

--name-only
仅在提交信息后显示已修改的文件清单。

--name-status
显示新增、修改、删除的文件清单。

--abbrev-commit
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

--relative-date
使用较短的相对时间显示(比如,“2 weeks ago”)。

--graph
显示 ASCII 图形表示的分支合并历史。

--pretty
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。

9.对于android项目,git需要忽略的文件

- .idea 文件夹
- .gradle 文件夹
- 所有的 build 文件夹
- 所有的 .iml 文件
- local.properties 文件

10.特殊操作(慎用)

 1)
git clean 参数  
-n -----显示将要删除的文件和目录; 
-x -----删除忽略文件已经对git来说不识别的文件 
-d -----删除未被添加到git的路径中的文件 
-f -----强制运行
2)
git mv -f [你想要删掉的文件] [你想要留下的文件]
git mv -f a.js A.js
等同于:
git rm a.js
git add A.js
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 是一个以命令行为主的免费开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。是Linus To...
    sunnyaxin阅读 877评论 7 6
  • 原创文章&经验总结&从校招到A厂一路阳光一路沧桑 详情请戳www.codercc.com 1. git简介 在实际...
    你听___阅读 1,577评论 0 8
  • Git时间——初识版本控制工具 安装 在Git官网下载相应系统和版本的安装包。 配置身份,区分谁提交了代码 查看是...
    大荒里种菜阅读 206评论 0 1
  • 1. git简介 工作区:本地电脑存放项目文件的地方; 暂存区:在使用git管理项目文件的时候,其本地的项目文件会...
    前端小兵阅读 281评论 0 1
  • 前沿:1. 本文是学习 廖雪峰git教程 时的一些笔记,大家想看详细版请阅读廖雪峰git教程2.本文中使用到的系统...
    前端唠唠嗑阅读 254评论 0 0