git命令行操作

本地库操作

基本命令

  1. 初始化本地库 git init
  2. 设置签名:区分不同开发人员的身份 ,仓库级别/项目级别:
    git config user.name feng
    git config user.email feng@aaa
    系统用户级别,采用就近原则,项目级别优于项目级别
    git config --global user.name feng
    git config --global user.email feng@123
    查看状态,查看工作区,暂存区的状态:git status
    加入暂存区[新建或修改的文件]: git add a.txt
    从暂存区撤回【暂存区可以撤回,前提是要add操作后,如果修改的文件,没有执行add不行】:git rm --cached a.txt
    从暂存区提交到本地库:git -m '注释' commit a.txt
    版本的前进、后退:

查看历史记录

git log 看起来很乱,可以格式化:git log --pretty=oneline,每次提交以一行显示。
git log --oneline 简化显示
git reflog 多一些显示内容,显示回退到每个版本要移动的步骤

执行版本前进后退

  1. 基于索引【指针】
    git reset --hard 索引值
    reset有三个参数:在本地库移动head,重置暂存区,重置工作区
    hard,
    soft:静静在本地库移动指针,不会动暂存区和工作区
    mixed【混合】:会在本地库移动head指针,也会重置暂存区
  2. 基于~符合:
  3. 基于^符号:只能往后,不能往前

删除文件并找回【文件存在时的状态提交到了本地库】

  1. image.png
  • rm命令删除了已经提交到本地库的一个文件,删除后,需要git add 文件 到暂存区,然后在执行git commit 删除文件即可。
  • 恢复1:执行git reflog,找到删除前的一个提交版本id,执行geit reset --hard xxxx即可找回
  • 恢复2:【删除操作未提交到本地库】如果文件纳入了本地库管理【即,执行了git commit操作】,然后又执行了rm 文件,又再执行了git add 文件,此时如果想恢复文件,可以执行git rest --hard HEAD命令即可
  1. 【文件存在时的状态没有提交到了本地库】
  • rm 文件后,执行git status查看状态,执行git rm 文件 ,即可删除,无须git commit,因为此时还为纳入版本管理
  • git rm 命令,不能直接删除文件,是删除暂存区的,或者是执行了rm 文件后,可以用git rm 文件从暂存区删除
    2.git reset --hard [指针位置] :
    指针位置指向历史记录;
    指针位置使用 HEAD;

比较文件差异

  1. git diff [文件名] 将工作区中的文件和暂存区进行比较
  2. git diff [本地库中历史版本] [文件名]:将工作区中的文件和本地库历史记录比较

分支管理

分支操作

  1. 创建分支:git branch 分支名
  2. 查看分支:git branch -v
  3. 切换分支:git checkout 分支名
  4. 合并分支:
  • 进入要合并的分支(如开发分支合并到master,则进入master目录)
    git checkout master
    git pull
  • 查看所有分支是否都pull下来了
    git branch -a
  • 使用merge合并开发分支
    git merge 分支名
  • 查看合并之后的状态
    git status
  • 有冲突的话,通过IDE解决冲突;
  • 解决冲突之后,将冲突文件提交暂存区
    git add 冲突文件
  • 提交merge之后的结果
    git commit
    如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
  • 本地仓库代码提交远程仓库
    git push
    git将分支合并到分支,将master合并到分支的操作步骤是一样的。

远程库操作

查看远程库信息

  1. git remote -v 查看当前所有远程地址别名
  1. 添加远程库别名:git remote add [别名] [远程地址]
  1. 推送:git push [别名] [分支名]
  • git push origin dev
  • git push origin dev:dev
  1. 克隆 git clone 远程地址
  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库
  1. 拉取相关操作
  2. pull=fetch+merge
  • fetch是把远程库的内容抓取到本地库,并没有更新到工作区里面,如果想看抓取下来的内容,可以使用
    git checkout origin/master 命令后,然后可以使用cat等命令查看本地库内容:


    image.png

    查看完后,可以在使用git checkout dev切换回来


    image.png
  • 合并本地库的内容到自己的工作区【本地库的master到本地的dev分支(当前分支)】:


    image.png
  1. git fetch [远程库地址别名] [远程分支名]
  2. git merge [远程库地址别名/远程分支名]
  3. git pull [远程库地址别名] [远程分支名]
  4. 冲突解决
  • 如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉
  • 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容

  • 本地仓库和远程仓库的中间缓存将git暂存区的文件推送到远程仓库放入暂存区git add .git commit -...
    jacktang2012阅读 202评论 0 0
  • Git是目前世界上最先进的分布式版本控制系统,很方便公司同事间合作开发,使用Git可以使用可视化的软件,如Sour...
    LeeCoder阅读 4,872评论 2 10
  • git命令行操作 拉取项目 git clone 项目地址 创建分支并跳过去 git branch 分支名 git ...
    辰微9036阅读 131评论 0 0
  • 这里参考廖雪峰老师的教程,一步步重头操作一遍。 概念 Git:分布式版本控制系统和svn 这种集中式的版本控制系统...
    梦想成真213阅读 9,260评论 0 4
  • Git命令行操作分为本地库操作和远程库操作 本地库初始化 使用如下命令进行git本地库的初始化 初始化的效果创建....
    BlueSkyBlue阅读 194评论 0 0