美文网首页
Linux-05 git

Linux-05 git

作者: 学飞的小鸡 | 来源:发表于2018-08-31 19:16 被阅读0次

    一、版本控制

        用文档记录每个模块的改动,存储、追踪修改历史。方便恢复版本以及版本查看。

    二、版本控制软件

    - SVN 集中式版本控制系统

        SVN服务器在公司(内网)

        SVN服务器在外网

        版本库是集中放在SVN服务器中,每次操作都要从SVN服务器获取最新的,每次操作完之后都要上传到SVN服务器;

        如果SVN服务器崩了,全部人都不能干活!

        完整项目代码只有在SVN服务器!

    - GIT 分布式版本控制系统

        每个人的电脑都是一个完整的版本库!

        团队操作,只需要互推代码即可!

        为了方便还是会有一个 GIT服务器,服务器更多就是备份一个份代码,更多是方便代码交换!

        就算GIT服务器崩溃,不会影响到任何人!

    三、git和GitHub

        git 分布式版本控制系统

        GitHub 网站(提供了git服务,开源项目免费提供Git存储)

    四、git安装

        $ sudo apt install git

    五、git使用【本地】

    - 版本库

        就是一目录,目录中有文件专门用于记录一个删除、添加、修改等操作!

    - 设置git (标识你是谁)  【只需要配置一次】

        git config --global user.email "zyz@qq.com"

        git config --gloabl user.name "zyz"

    - 创建仓库(版本库)

        // 切换到项目目录中

        cd Meituan

        // 初始化本地仓库(版本库)  创建.git目录

        git init

    - 忽略清单 .gitignore

        // 创建忽略清单

        touch .gitignore

        > 一个行,表示一个忽略规则

    - 查看仓库状态

        git status

        git status -s // 输出简要变更日志

        备注:

        ? 没有添加到版本库中(即不会记录改动操作)

        A 已添加到本地代码仓库中

        D 被删除

        M 被修改

        I 被忽略(忽略清单中添加)

    - 添加版本库(本地托管)

        git add hello.c // 将hello.c文件添加到本地版本库(托管)

        git add . // 将当前中所有未托管的文件 全部添加到本地版本库中

    - 从版本库中删除

        git rm -r --cached . // 删除所有托管

        git rm -r --cached world.c // 将world.c从托管中移除

    - 提交到本地仓库(版本库)

        git commit -m "提交版本说明"

    - 查看提交日志

        // HEAD

        git log

        git log --pretty=oneline (一行查看)

    - 对比差异

        git diff filename // 对比当前版本和存储版本库中最新版本进行对比

    - 版本回退

        // 时光倒流

        git reset --hard HEAD^ // 回退到上一版本

        git reset --hard HEAD^^ // 回退到上上版本

        git reset --hard HEAD~30 // 回退到上30版本

        git reset --hard xxxxxx // 对应版本的hash值的前6位

        git reset --hard xxx...  // 对应版本的hash值

        // 回到未来(用reset回到之前版本后)

        git reflog // 查看git历史操作

        git reset --hard xxxxxx

        备注: HEAD 指向当前版本

    - 撤销操作

        // 编辑该文件

        $ vi 01-test.c

        a. 未添加到缓存区

        git checkout // 查看 (git status)

        git checkout -- 01-test.c

        b. 添加到缓存区

        git add .

        git reset --hard HEAD

        c. 添加版本库

        git add .

        git commit -m "01test编辑"

        git reset --hard HEAD^

    六、git使用【远程】

    - GitHub创建代码管理仓库

     

    - 添加远程仓库

        // 添加远程仓库,远程仓库名叫 origin

        git remote add origin https://github.com/iphone3/python1807.git

    - 查看远程仓库

        git remote -v

    - 删除远程仓库

        git remote rm origin

    - 推送本地仓库内容 到 远程仓库

        // master主分支

        git push -u origin master

    - 拉取(获取)远程仓库  到  本地仓库(github中的README.md文件不在本地代码目录中)

        git pull origin master

      (git pull --rebase hehe master)

    - 克隆

        // 默认仓库名就为目录名

        git clone https://github.com/iphone3/python1807.git

        // 指定目录

        git clone https://github.com/iphone3/python1807.git Meituan

        备注: 一般项目开始,可以在GitHub中先创建,再将整个代码仓库克隆下来

    七、HTTPS方式和SSH方式

    - HTTPS

        git remote add origin https://github.com/iphone3/python1807.git

        git push origin master

        git pull origin master

       // orgin为库名,随意取

    【每次操作都需用户名和密码】

    - SSH 【前提是有配置SSH】

        git remote add origin git@github.com:iphone3/python1808.git

        git push origin master

        git pull origin master

        GitHub中ssh配置:

    - 创建.ssh目录

        mkdir ~/.ssh

    - 切换目录

        cd ~/.ssh

    - 配置全局name和email 【已经配置,直接忽略】

        - 生成KEY

        // 上面配置全局和这里的邮箱与之对应

        ssh-keygen -t rsa -C "zyz@1000phone.com"

        - 配置GitHub的key 【id_rsa.pub】

        settings >> SSH AND GPG Keys >> New SSH Key >>

        - 检测是否配置成功

        ssh git@github.com

    八、分支管理

    - 查看分支

        git branch

    - 新建分支

        git branch dev

    - 删除分支

        git branch -d dev

    - 切换分支

        git checkout dev

        git checkout master

    - 新建并切换分支

        git checkout -b test // 创建test分支,并切换到test分支

    - 推送分支

        git push origin master // 推送到主分支

        git push origin dev // 推送到dev分支

    - 合并分支

        // test分支合并到master分支

        git checkout master

        // 合并(在master分支)

        git merge test

    - 抓取分支(默认是master分支)

        git checkout -b test origin/test

    九、补充

    -删除git

    删除隐藏在文件夹中的.git 隐藏文件(ls -a 可以看到),使用 -rf 强制删除

    删除库也要用 -rf

    相关文章

      网友评论

          本文标题:Linux-05 git

          本文链接:https://www.haomeiwen.com/subject/xosewftx.html