• git版本库


    本地提交:

    git init

    git add file/dir/./*       交互式添加文件到暂存区:git add -i

    git commit -m “提示”

    远程:

    连接git remote add origin git@github.com:michaelliao/learngit.git   ssh支持的原生git协议  速度快
      git remote add origin https://github.com/daduryi/git_learn.git  https协
    (remote add 用于你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器)
    推送git push -u origin master  -u 并进行关联,用于第一次
      git push origin master
    git push -f <remote> <branch> 强制你的本地分支,以便覆盖远程的分支 --force
    克隆:git clone git@github.com:daduryi/git_learn.git(只克隆到了master分支)
    git remote 查看远程库信息(名称 origin [ˈɔ:rɪdʒɪn] 起源)  git remote -V

    删除文件

    rm file

    git rm file 并且 git commit

    分支

     git checkout -b dev  从当前创建并切换到dev分支,相当于以下两条命令:

     git brach dev 创建

     git checkout dev 切换

     git branch 查看分支 

     git branch -d dev 删除dev分支

     git brash -D dev 强力删除未合并的分支

     git checkout -b dev origin/dev 创建远程的dev分支到本地

     git branch查看所有分支,当前分支带*  -a所有

    更新pull与合并merge

    git pull 在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。   

    git pull -r (--rebase)使用 git pull --rebase 主要是为是将提交约线图平坦化,而 git merge --no-ff 则是刻意制造分叉。

     git pull origin next:master 取回origin主机的next分支,与本地的master分支合并

     git merge dev 合并指定分支dev到当前分支(有时需要解决冲突,修改冲突后需要add commit,然后自动执行失败的merge)   --no-ff强制不是用Fast forward

     git diff <source_branch> <target_branch>  在合并改动之前,你可以使用如下命令预览差异

     git diff file  查看工作区和暂存区的区别

     git diff HEAD -- file 查看工作区和版本库的区别

    bug分支:stash

    git stash 将工作现场存储起来(多用于去修复master临时出现的bug),等以后恢复现场后继续工作

    git stash apply 应用储藏, 然后git stash drop删除stash内容)或者(git stash pop 恢复并删除stash)  stash  [stæʃ]  藏匿

    git stash list列出存储的现场

    git stash apply stash@{0},恢复指定stash

    https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89

    替换本地改动(回退):

    git checkout -- file         丢掉工作区的修改,让这个文件回到最近的一次git commit或git add的状态,没有--就表示切换分支   新文件都不会受到影响

    git reset HEAD file     可以把暂存区的修改撤销掉(即撤销add的,重新回到工作区)   

    reset --hard commit_id    本地版本回退

    假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
    git fetch origin  或者
    git reset --hard origin/master

    log

    git status

    git log

    --pretty=oneline 一个压缩后的每一条提交记录只占一行的输出

    --graph 查看分支合并图

    --abbrev-commit简化command id

    --decorate --all每个分支都标示了他的名字和标签)

    --author=bob  只看某一个人的提交记录

    --name-status  看看哪些文件改变了

    git log --graph --pretty=oneline --abbrev-commit查看分支情况

    git reflog 查看命令历史,以便确定回到未来的哪个版本

    git log --help

    标签:

     git tag 1.0.0 1b2e1d63ff        git tag -a v1.4 1b2e1d63ff -m 'my version 1.4'  推荐带m的

     git tag     git tag -l 'v1.4.2.*'       git show v1.4

     git push origin [tagname]    默认情况下,git push 并不会把标签传送到远端服务器上       git push origin --tags(所有的标签)

     git tag -d 标签名  

    https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE

    概念:

    工作区workspaces:  电脑里能看到的目录,如git_learn目录

    暂存区stage/index:  

    版本库:  .git目录      在.git目录中存在暂存区,称为stage或index; master分支; 以及指向master的一个指针HEAD

    add从workdir到stage,commit从stage到master       

    0、设置账号

    $ git config --global user.email "lixuening7115@163.com"
    $ git config --global user.name 'daduryi'

    远程:
    1、ssh-keygen -t rsa -C "name@163.com"
    2、登录GitHub,打开“Account settings", SSH KEYS页面;点add ssh key,填上title,粘贴id_rsa.pub文件内容

    解释:

    1、在Git中,用HEAD表示当前版本,上一个版本用HEAD^,上上个版本用HEAD^^,当前网上100个版本HEAD~100

    2、fast forward模式 merge后看不出做过合并,no-ff能看出来,所以ff模式删除分支后会丢掉分支信息。

    3、合作开发时,master用来发布新版本,dev用来干活,每个人在自己分支上干活,时不时往dev上合并。

    创建bug分支修复bug,多用到git stash

    当从远程库克隆时,实际上git自动把本地分支master和远程master分支对应起来,并且远程库的默认名称是origin

    主分支master  开发分支dev需要推送远程, 其他分支看需不需要大家合作(是否推送的原则)

    参考:

    http://rogerdudler.github.io/git-guide/index.zh.html

  • 相关阅读:
    四瓶化学试剂合成了人工生命
    DNA 就是软件代码
    首例人造生命,碱基对达到100多万个
    看到一个新闻管理系统,看上去开源,其实是骗你使用
    日本可合成碱基对 遗传信息"无中生有"
    新生命如何在实验室“被创造”
    一个基因有多少碱基对
    A、T、G、C四个字母(构成碱基的基本单位)的不同排列,画出一张基因图谱
    远程图片下载不能显示的问题
    30亿个碱基对组成,分布在细胞核的23对染色体中
  • 原文地址:https://www.cnblogs.com/daduryi/p/6591459.html
Copyright © 2020-2023  润新知