git使用总结

看了以前自己写的总结,有一些还是对别人有意义的,打算认真归纳下,陆续发布不出来。

就今天给公司新来的前端实习生做了关于git使用的培训,将自己前两天准备的文档做分享,也算是自己使用git的一次总结。

本地操作

1.什么是git

  • git是一个控制版本的系统,可以备份文件,记录历史,回退版本,实现多端共享,方便团队写作,同事git拥有强大的分支管理系统
  • git是分布式管理系统,svn是集中式管理系统,需要一台中央服务器,相对于svn,git速度更快,且更安全(代码不易丢失)
    2.git本地操作
  • git 分位三个区:工作区,暂存区,历史区(版本库)
  • git的安装
    ----window http://git-scm.com
    ----Mac 如果安装过xcode自带git,homebrew是mac的包管理工具
    3.使用git之前先告诉git你是谁(配置git用户和邮箱信息),如果不配置,不能提交代码

可以查看git配置列表

// git config --list 

设置

$ git config --global user.name "你的git用户名"    
$ git config --global user.email "你的git邮箱"

4.git的初始化

  • 创建并进入空一个目录
  • 通过Git-Bash打开命令行
  • git init命令把这个目录变成Git可以管理的仓库
git init

5.git中的三个区操作详解

  • 工作区
    -----通过git add 添加到暂存区,git add .或者-A,提交全部
git add . // 添加全部

-----git status 查看git状态,红色文件表示代码在工作区,绿色文件表示暂存区。

git status   // 查看git状态

-----git rm --cached 文件名,取消暂存,git rm --cached . -r 取消所。

git rm --cached 文件名 // 取消暂存
git rm --cached . -r  // 取消所所有暂存
  • 暂存区
    -----git commit -m 注释,将暂存区代码提交到版本库
git commit -m 注释  // 将暂存区代码提交到版本库
  • 历史区/版本库
    -----每一个版本都有版本id号
    ----- 通过git log查看日志,里面记录提交信息
git log  // 提交记录,包含版本号,我们能通过版本号找历史代码

6.git diff,查看不同
----- 工作区和暂存区比较:

git diff

----- 工作区和历史区比较:

git diff master(分知名)

------ 暂存区和历史区比较:

git diff --cached 

7.撤销操作
撤销回git add的内容:git reset Head "文件名" 或 .

git reset Head "文件名"
git reset Head .

撤回文件(从暂存区中将工作区内容覆盖掉):git checkout "文件名" ,这个操作先从缓存区撤销,缓存区无内容,从历史区域撤销
有的时候我们希望提交时合并到上一次的提交 git commit --amend

git commit --amend

8.回到固定版本
git log,产看提交记录(含id),按“q”退出,或者按“/”搜索

git log  // 产看提交记录(含id),按“q”退出,或者按“/”搜索

方法一:git reset --hard commit_id,这种方式会用这个版本覆盖工作区和暂存区,git log看不到版本后的id了,用git reflog,能看到所有提交,git reset --hard HEAD^,回到上一个版本,git reset --hard HEAD^3,回到倒数第三个版本

git reset --hard  commit_id  // 回到具体某个版本,此时it log看不到版本后的id了
git reflog  // 能看到所有提交记录,包裹回到某个版本之后的提交记录
git reset --hard  HEAD^  // 回到上一个版本
git reset --hard  HEAD^3  // 回到倒数第三个版本

方法二: git checkout commit_id,恢复某个版本文件:git checkout commit_id filename 某个文件

git checkout commit_id
git checkout commit_id filename 某个文件

9.分支管理
-----git branch ,查看分支

git branch

-----git branch 分知名 ,创建分支

git branch 分知名

-----git checkout 分支名,切换分支

git checkout 分支名

-----git branch -D 分知名,删除分支(不能删除当前所在分支)

git branch -D 分知名

-----git checkout -b 分支名,创建并切换分支

git checkout -b

-----git merge 分知名,合并分支

git merge 分知名

注意:在工作区新建的文件,在没commit前,是所有分支的,只有在commit后才确定属于哪个分支,如果文件有修改,默认不能切换分支,需要提交到暂存或者历史区,如果不想暂存或者提交到历史区,可以用git stash 暂存文件,切回分支时可以git stash pop,暂存被释放

10.合并时冲突解决
如果两个人同时改了一个文件,提交时会发生冲突,这是git会把两个人的提交保留,需要手动修改冲突,留下想要的结果,再提交
11.添加忽略文件,.gitignore文件

$ touch .gitignore // 创建.gitignore文件
$ echo .DS_Store // 忽略
$ echo node_modules // 忽略
$ echo .idea // 忽略

12.git不会上传空文件夹,如果需要上传,添加.gitkeep


远程仓库

1.首先得有线上代码仓库,可以是github或者gitLab,或者其他仓库
2.关联到远程仓库
git remote add origin 仓库地址,origin是仓库别名,可以添加多个
git remote -v ,查看远程仓库信息
git remote rm 仓库名,删除关联·

git remote add origin 仓库地址
git remote -v
git remote rm 仓库名

3.提交代码到你远程仓库
git push origin master,可以git push -u origin master,这样下一次提交就咳哟i直接git push提交到origin仓库

git push origin master
git push -u origin master

4.更新代码,git pull
线上和线下代码不一样时,我们会发现push代码时会失败,这也是我们实际工作中遇到最多的。先git pull origin master(一般可直接git pull),然后改下注释,按esc,然后shift+z退出,在git push origin master

如果有冲突,先手动解决冲突再合并

5.github上建立静态页,建gh-pages分支,来发布我们的静态页
------ 在项目中创建一个gh-pages分支,在分支内建静态页,如index.html
------ 将分支提交到线上仓库
------ 找到提供给你的网站,在setting中,找到gitHub pages,下面有个地址就是gh-pages分支的静态页
6.将向上仓库代码拉到本地

git clone 仓库地址
git clone 仓库地址  项目新名,可改项目名字

默认就是git 仓库,且有origin地址,可以将代码提交到自己的仓库里

注:fork别人的代码,可以New pull request提交给原作者

7.在github上的setting可以设置Collaborators,设置共同开发的人(共享者可直接push代码,拥有最大权限)
8.git可视化操作
git自带界面话GUI,webStorm和vscode等编辑器也能实现可视化




另外附上工作中经常用到的linux命令:
1.pwd 打印工作目录
2.删除文件夹 rm -rf 文件夹
3.删除单个文件,rm 文件名
4.建立目录,mkdir 目录名
5.ls -al 显示目录下所有文件
6.touch 文件名 ,创建文件
7.cat 文件名,查看文件
8.vi 文件名 i:插入模式 esc:退出编辑模式 q!强制退出 :wq 保存并退出
9.echo输入文件内容,echo '内容' > 文件名,一个>表示写入,两个>表示叠加

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,880评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,915评论 0 11
  • 月圆之夜,大餐过后,浓睡不消残酒,便就呼三俩老友,置一小桌于门外空阔处,再上红酒小酌,美其名曰:“回魂酒”。 人朦...
    喝醉酒的少校阅读 424评论 0 4
  • 01 你要相信,这世界上真的有不少男的,看到你头像的第一眼便会“”爱上你”。 当然,这种喜欢顶多跟“见色起意”有关...
    半路某人阅读 1,942评论 0 0
  • 文/亭玉子 〈1〉 今天距离上次离婚一个多月了,回忆起这些天,自己的心情真的是天差地别。 从我开始提出离婚直到他同...
    亭玉子阅读 610评论 10 11