学会git就可以把你的项目变废为宝

Git基本操作

Git简介

  • Git是什么?
    Git是目前世界上最流行的分布式版本控制系统
    Git是在2005年,Linus花了两周的时间用C语言编写的分布式版本控制系统
    所有的版本控制系统都只能跟踪文本文件的改动,比如txt文件、网页、所有的程序代码等等

  • 集中式和分布式
    版本库:英文repository,可以简单的理解为目录
    集中式:版本库是集中存放在中央服务器里,每次干活需要从中央服务器里面取得最新的版本,干完活以后在上传到中央服务器里的版本库里。
    缺点:需要网络、安全性不是很高
    代表:CVS、SVN、VSS…
    分布式:版本库是存放在个人的电脑里面,每次干活只需要在个人的电脑上修改,几个人修改一个文件只需要互相推送就行。
    优点:不需要网络、安全性高
    代表:Git、Mercurial、Bazaar…

回到顶部 目录

Git基本操作

  • 设置用户名和邮箱
    $ git config --global user.name "用户名"
    $ git config --global user.email "邮箱地址"

  • 创建版本库

    1. 选择合适的地方,创建一个文件夹(也可以手动创建,切换到当前文件地址)
      切换路径:cd
      创建文件夹:mkdir
      显示当前文件路径:pwd
    2. 通过 git init 命令把这个目录变成git可以管理的仓库(此时会在当前位置生成一个隐藏的.git文件)
  • 添加文件

    1. 使用命令 git add <flie> ,注意,可反复多次使用,添加多个文件;(没有任何消息就是成功)
    2. 使用命令 git commit -m "message 提示信息" ,完成(成功会打印具体发生了怎么样的修改)
  • 文件监控
    git status 命令可以让我们时刻掌握仓库当前的状态信息
    git diff 命令可以让我们查看当前修改的信息

  • 版本退回
    HEAD版本(当前版本)、HEAD^上一个版本、HEAD^^上上一个版本、HEAD~100上100个项目
    git reset --hard commit_id 命令可以在历史和未来之间随意的穿梭
    git log 命令查看提交内容历史记录,可以用来穿越到古代
    git reflog 命令查看操作命令的历史记录,可以用来回到未来

  • 工作区和暂存区

    • 工作区
      创建版本库的文件目录,你操作文件的地址
    • 版本库
      工作区里面有一个隐藏文件**.git就是Git的版本库
      版本库里面有很多东西,其中最主要的就是
      stage(或者叫index)的暂存区**;
      还有Git为我们自动创建的第一个分支master,已经指向master的指针叫HEAD
      Git的条件文件的两步:
      第一步:git add 实际上就是把文件修改添加到暂存区
      第二步:git commot 实际上就是把暂存区的所有内容提交到当前分支(也就是master分支)
  • 撤销修改
    git checkout --file 命令丢弃工作区的修改,也就是回到最近一次的add、commit

  • 删除文件
    一般情况,直接在工作区删除或者用 rm file 命令删除,版本库里还有

    1. 把版本库里面的对应文件删除git rm file,然后git commit -m "remove file"
    2. 误删,git checkout --file 命令撤销就行

回到顶部 目录

远程仓库

  • 添加仓库
    可以弄一个服务器自己搭建,这里介绍GitHub网站,提供Git仓库托管服务的
    本地的Git仓库和GitHub仓库之间的传输需要提供SSH加密的
    1. 创建SSH Key。在当前用户主目录下,查看是否存在**.ssh目录,里面是否有id_rsaid_rsa.pub**,有跳过
    没有使用命令 ssh-keygen -t rsa -C "邮箱地址",然后一路回车
    成功后你会生成.ssh目录,里面有**id_rsa(私钥,不能泄露)id_rsa.pub(公钥)**两个文件
    2. 登录GitHub,打开"Account settings",“SSH Keys"页面,然后点击"Add SSH Key”,填写title,在Key文本款中粘贴id_rsa.pub文件内容,然后点击"Add Key"

  • 添加远程库

    1. 登陆GitHub -> Create a new reopo -> Repository name(库的名字) —> Create repository
    2. 关联远程库:git remote add origin git@github.com:Git账号名称\仓库名称.git
    3. 下载最新文件:git pull origin master(GitHub项目上和本地文件不相同)
    4. 提交内容:git push origin master (第一个在push后加一个 -u,可以让本地仓库和远程仓库链接起来)
  • 远程库的克隆

    1. 创建一个远程库(gitskills),勾选Initialize this repository with a README
    2. 克隆仓库命令:git clone 克隆库的地址

回到顶部 目录

分布式管理

  • 创建与合并分支

    • 查看分支:git branch
    • 创建分支:git branch <name>
    • 切换分支:git checkout <name> 或者 git switch <name>
    • 创建并切换分支:git checkout -b <name> 或者 git switch -c <name>
    • 合并某分支到当前分支:git merge <name>
    • 删除分支:git branch -d <name>
  • 解决冲突
    必须自己手解决,git log -graph 命令可以查看到分支图

  • 分支管理策略
    通常情况下,Git会使用Fast forward模式,该模式下,删除分支后,会丢掉分支信息
    解决方法:在合并的时候加上–no-ff参数 git merge --no-ff -m "提示信息" <name>

  • Bug分支
    发现Bug,修复bug时,我们会通过创建新的bug分支进行修复然后合并,最后删除
    1. 把当前工作现场保存一下 git stash,然后去修bug
    2. git stash lisr 命令查看刚刚保存的工作现场
    3. 恢复现场并删除stash:git stash pop
    在主线程上的bug当前肯定也会有,就需要同步修复bug
    git cherry-pick <commit>命令,把bug提交的修改复制到当前分支,避免重复劳动
    如果要丢弃一个没有被合并的分支,可以通过 git branch -D <name> 强行删除

  • 多人协作

    • 查看远程库信息:git remote -v
    • 本地新建的分支如果不推送到远程,对其他人就是不可见的
    • 从本地推送分支:git push origin branch-name,如果失败,先用 git pull 抓取远程的新提交
    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
    • 创建本地分支和远程分支的关联,使用git branch--set-upstream branch-name origin/branch-name
    • 从远程抓取分支,使用 git pull ,如果有冲突,要先处理冲突

回到顶部 目录

标签管理

  • 创建标签

    • 新建一个标签 git tag <tagname>,默认我HEAD,也可以指定一个commit id
    • 指定标签信息:git tag -a <tagname> -m "sfsf"
    • 查看使用的标签:git tag
  • 操作标签

    • 推送本地标签:git push origin <tagname>
    • 推送全部本地标签:git push origin --tags
    • 删除本地标签:git push -d <tagname>
    • 删除远程标签>:git push origin :refs/tags/<tagname>

回到顶部 目录

GitHub和Gitee(码云)

两个都是相当优秀的Git托管网站上面已经基本操作了GitHub
两个操作基本相同,GitHub是国外的网站,Gitee是国内的网站
删除原有的远程关联:git remote rm origin
创建新的远程关联:git remote add origin
同时关联GitHub和Gitee(码云):git remote add githubgit remote add gitee
要推送到GitHub和Gitee(码云):git push github mastergit push gitee master

回到顶部 目录

自定义Git

  • 设置显示背景颜色 git config --global color.ui true
  • 配置别名:每个仓库是Git配置文件都在**.git/config**文件中的[alias]下面,而当前的配置文件在用户主目录的一个隐藏文件.gitconfig中
  • 忽略特殊文件:在Git工作区的根目录下创建一个特殊的.gitignore文件,GitHub上有

推荐

git可视化软件:SourceTree

回到顶部 目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值