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
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

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