git应用

作者: 清索 | 来源:发表于2019-03-30 23:18 被阅读0次

    1_创建代码仓库

    git init 创建Repository
    ls -al 查看内容
    git add file 添加文件/ add . 表示添加所有文件
    git commit -m "First commit." 提交到Repository

    2_查看修改状态

    git status 查看文件修改情况
    git diff 查看所有文件的更改内容
    git diff app/src/main/.../MainAcitvity.java 查看具体文件的更改内容
    git checkout app/src/main/.../MainAcitvity.java 撤销具体文件的更改内容
    <使用Andorid studio 时,通常用revert撤销更改>
    当文件的更改执行过add命令后,无法用checkout命令还原,
    此时,git reset HEAD app/src/main/.../MainAcitvity.java取消添加,再运行git checkout命令撤销修改。
    git log 查看提交记录<包括提交id,提交人,提交日期,提交记录>
    git log (id) -1 只看一行记录
    git log (id) -1 -p 查看该行记录具体修改了什么内容
    git log --graph 以图表形式查看

    _3分支的用法

    git branch 查看当前版本库当中有哪些分支
    git branch version1.0 创建名为version1.0的分支
    git checkout version1.0 切换到名为version1.0的分支

    将分支上的修改合并到主干
    git checkout master
    git merge version1.0
    1_ 切换到主干
    2_ 将名为version1.0的分支合并到主干
    git merge --no-ff version1.0
    --no-ff 作用是在历史记录中明确记录下本次分支合并

    git branch -D version1.0 删除名为version1.0的分支

    _4远程版本库协作

    git clone https://github.com/.../ text.git 将远程代码下载到本地仓库
    git push origin master 在对本地代码进行了 一些修改和提交,同步到远程代码库
    origin指远程版本库的Git地址,此处指https://github.com/.../text.git
    master指同步到哪一个分支上,此处为master主干

    远程版本库的修改同步到本地,两种方法:
    1, fetch命令
    git fetch origin master
    此命令同步下来的代码并不会合并到任何分支上,而是存放在origin/master分支上
    git diff origin/master 查看远程版本库作了哪些修改
    git merge origin/master 将origin/maste分支上的修改合并到主分支上
    2,pull命令
    git pull origin master 将fetch 和 merge 命令一起执行,获取最新代码并且合并

    _将代码托管至 github上

    方法1:github上新建仓库,clone至本地,将想要公开的代码提交至这个仓库再push到GitHub仓库中,代码便会被公开。

    方法2:git remote add origin <仓库地址>
    本地仓库与远程仓库连接

    _github中Tag的应用

    git tag -a v1.0 -m "add a tag" 创建名为v1.0的Tag
    git tag 查看所有Tag
    git tag -l 'v1.0' 查看具体某个版本Tag
    git show v1.0 展示Tag v1.0具体信息
    git push origin v1.0 共享至github
    git push origin --tags 所有Tag共享至github
    git tag -d v1.0 删除某个Tag
    git push origin :refs/tags/v1.0 删除远程某个Tag
    git checkout v0.1 切换到名为v0.1的Tag
    git checkout -b bt v0.1 创建一个名为bt的分支,包含v0.1Tag的代码

    _技巧应用

    场景一:

    回到某个节点,修复BUG,合并到主干
    git reset 回溯历史版本

    git log 查看历史日志,记录要回到节点的ID哈希值
    git reset --hard ID哈希值 回溯到某个节点
    git checkout -b fix-b 创建修复Bug分支fix-b
    修复Bug
    git relog 查看当前仓库执行过的操作日志,记录ID哈希值
    git checkout master 回到主分支
    git reset --hard ID哈希值 推进到之前的节点
    git merge --no-ff fix-b 合并fix-b分支
    git add / git commit 提交至仓库

    场景二:

    要修改上一条提交信息
    git commit --amend
    在编辑器中修改提交信息,保存,关闭编辑器

    场景三:

    将一次小的修改,提交至上一次提交中,压缩成一个历史记录
    git rebase -i

    git rebase -i HEAD~2 选定当前分支中包含HEAD在内的两个最新历史记录为对象,并在编辑器中打开
    显示为
    pick id 提交信息1
    pick id 提交信息2
    更改为
    pick id 提交信息1
    fixup id 提交信息2
    保存,关闭编辑器

    场景四:

    分支的协作开发:同事1创建某个功能分支,并同步到远程仓库,同事2获取远程的分支,提交更改,同步更新,同事1获取最新更新。
    1,git checkout -b feature-D 同事1创建分支
    2,git push -u origin feature-D 同事1push至远程仓库
    3,git clone git@github.com:...
    git branch -a 添加-a可以同时查看本地和远程仓库的信息
    如果已克隆至本地仓库,可省略...
    git checkout -b feature-D origin/feature-D 将feature-D分支获取至本地
    修改...
    4,git commit -am "###" 提交
    5,git push 推送至远程仓库
    6,git pull origin feature-D 同事1获取分支最新代码

    场景五:

    github上下载某个分支代码
    git clone -b feature-b git@github.com:...
    下载名为feature-b的分支代码

    场景六:

    github上 查看分支间差别
    比如想查看feature-a 和 feature-b分支之间的差别,可以将分支名加入到URL里
    https://github.com/rails/rails/compare/feature-a...feature-b
    查看几天前的差别
    https://github.com/rails/rails/compare/master@{7.day.ago}...master
    时间单位{day.week.month.year}
    查看与指定日期之间的差别
    https://github.com/rails/rails/compare/master@{2018-01-01}...master

    相关文章

      网友评论

          本文标题:git应用

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