源代码管理_Git终端命令行演练

一、 个人开发

1. 初始化一个本地仓库

  • 命令:git init
  • 作用:管理本地代码,修改上传,版本回退。

2. 配置仓库

  • 命令:git config user.name "lch"
    作用:告诉git你是谁,可以追踪修改记录
  • 命令:git config user.email "lch@qq.com"
    作用:告诉git怎么联系你,多人合作开发时,沟通交流
  • 命令:git config -l
    作用:查看配置信息,也可以通过打开.git -> config查看

3. 操作演练

  1. 新建文件并提交
    touch main.c //创建文件
    git add . //添加文件到暂缓区
    git commit -m "注释" //提交到本地仓库并注释
  1. 修改文件并提交
    git add . //添加修改文件到暂缓区
    git commit -m "注释" //提交到本地仓库并添加注释
  2. 删除文件并提交
    git rm main.c //删除指定文件,main.c为文件名
    git commit -m "注释" //提交到本地仓库并注释
  3. 日志查看
    git log //查看日志
    git log.png

    git reflog //查看七位版本号
    git reflog.png
  4. 版本回退
    git reset -hard HEAD //重置到当前版本
    git reset -hard HEAD^^ //重置到上上个版本
    git reset --hard HEAD2 //重置到往上两个版本
    git reset -hard 七位版本号 //重置到指定版本

4. 其他相关知识

  1. 文件状态(git status)
  • 版本号的含义:版本号是一个有SHA1生成的40位哈希值,这样做的目的是保证版本号的唯一;
  • 颜色含义:
    • 红色:代表被添加或者司改的文件没有被添加到暂缓区;
    • 绿色:代表文件在暂缓区,等待提交;


      git status.png
  1. vim编辑器的使用
  • 命令模式:等待编辑命令输入;所有输入的内容都被当做命令来使用;
  • 插入模式:输入的所有内容都被显示,并被当做文件内容处理;按Esc键可以退出插入模式进入命令行模式
  • 命令行模式:执行待定命令(保存文件并退出vim:wq;强制退出q!
  1. 日志查看配置
  • git config alias.st "status"
  • git config alias.ci "commit -m"
  1. --global的作用
  • 可以进行全局配置,所有版本库共享此配置,个人电脑上建议使用全局配置

二、团队开发

注:团队开发必须有一个共享库,这样成员之间才可以进行写作开发。

0. 共享库的分类

  • 本地共享库(只能在本地面对面的操作)
  • 电脑文件夹/U盘/移动硬盘;
  • 远程共享库(可以通过网络远程操作)
    • 自己搭建Git服务器;
    • GitHub上托管项目(公开项目免费,私有项目收费);
    • OSChina上托管项目(安全免费,服务器在国内,访问速度快)

1. 演示多人开发

  1. 搭建本地共享库:git init --bare //搭建本地共享库
  1. 创建dvOne、dvTwo文件夹(用来代表两个不同的开发者本地仓库);
  2. 分别进入到两个文件夹从共享库clone项目到本地:git clone 共享仓库地址
  3. 新增文件的同步:
  • touch person.h //创建文件person.h
  • git add . //添加到暂缓区
  • git commit -m "创建person.h" //提交到本地仓库
  • git push //提交到本地共享库
  • git pull //开发者二从共享库同步文件
  1. 修改文件的同步:
  • git add . //添加到暂缓区
  • git commit -m "注释" //提交到本地仓库
  • git push //提交到共享库
  • git pull //开发者二从共享库同步文件
  1. 删除文件的同步
  • git rm 文件名 //删除指定文件
  • git commit -m "注释" //注:因为通过命令行删除的文件会自动添加到暂缓区,所以可以省略git add .这一步。
  • git push //提交到共享库
  • git pull //开发者二从共享库同步文件
  1. 冲突的解决方法
  • git pull //重新同步,然后打开冲突的文件,删除垃圾代码。
  1. 手动添加忽略文件
  • touch .gitignore //创建忽略文件
  • open .gitignore //打开忽略文件进行编辑
  • git add . //添加到暂缓区
  • git commit -m "" //提交到本地仓库
    附:.gitignore文件的配置规则
  • 备注:
  1. 在真实开发中,配置.gitignore文件一般都是去github上搜索gitignore
  2. 报错:fetch first //代表当前文件已过期,需要从共享库更新,此时应该执行git pull操作

三、Git版本备份/分支管理

注:在git中不是通过拷贝代码来解决和备份和开启分支的,而是通过打标签控制HEAD指向,来回到任一版本

  • 当开发完成一个版本时可以同过以下命令备份版本:

    • git tag -a v1.0 -m "标记1.0版本" //给版本1.0打标签
    • git push origin v1.0 //提交到共享库
  • 当发现之前的版本存在bug,需要获取版本来进行修复时:

    1. git checkout v1.0 -b v1.0fixbug //根据版本v1.0建立新分支v1.0fixbug并切换到此分支
    • git add . //修复之后提交到本地仓库,注意此处提交到的是HEAD所直向的分支-v1.0fixbug
    • git commit -m "修复bug"
    • git tag -a v1.1 -m "1.1版本备份" //打标签上传到共享库
    • git push origin v1.1
    • git push origin v1.0fixbug //最后将整个分支上传到共享库
  • 修复完成后,要把修复的版本合并到当前版本时:

    1. 从共享库更新代码到本地库
    • git pull
    1. 查看当前服务器存在哪些分支
    • git barnch -r
    1. 切换到master分支后,将v1.0fixbug分支合并过来
    • git checkout master //切换到master分支后,合并修复的分支
    • git merge origin/v1.0fixbug -m "合并分支"
    • 合并完成后提交到共享库
      • git add .
      • git commit -m "合并分支"
      • git push
    1. 合并完成后可以删除共享库的分支
    • git branch -r -d origin/v1.0fixbug
    1. 查看当前版本标签
    • git tag
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容