美文网首页
Git 全方位

Git 全方位

作者: kayorl | 来源:发表于2016-11-26 00:36 被阅读0次

    本地仓库

    $ git checkout -- readme.txt
    

    1.修改后未放至暂存区,回到和版本库一样的状态

    2.修改后添加至缓存区,回到添加前的状态

    总: 回到最近得 git add 或者 git commit 时的状态

    $ git reset HEAD readme.txt
    

    将缓存区的修改撤销(unstage)

    $ git rm readme.txt
    

    从版本库删除

    远程仓库

    $ ssh-keygen -t rsa -C "email@example.com"
    $ cd ~/.ssh/id_rsa.pub
    # 在 github / 个人 / SSH / Add SSH 填入密钥 
    

    本地仓库与Github 仓库之间通过 SSH 加密

    # origin 远程库名
    # server-name 采用 github 则为 github.com
    # path 用户名
    # repo-name 仓库名
    $ git remote add origin git@server-name:path/repo-name.git
    

    在本地仓库里添加远程库

    $ git clone git@server-name:path/repo-name.git
    

    克隆远程库

    # -u 关联相应分支
    $ git push -u origin master
    

    把本地库的所有内容推送到远程库

    分支管理

    HEAD指针不是指向提交,而是指向 master ,master 指向提交


    # -b 创建并切换
    $ git checkout -b dev
    
    # 等价于两条
    $ git branch dev
    $ git checkout dev
    

    创建并切换分支

    # 当前分支 master
    $ git merge dev
    

    合并指定分支到当前分支

    $ git branch -d dev
    

    删除本地分支

    $ git push --delete origin dev
    

    删除远程分支

    $ git branch -m develop dev
    

    本地分支更名

    冲突

    人生八九不如意

    $ git checkout -b feature1
    
    # 修改 README.md 
    # Creating a new branch is quick AND simple.
    $ git add README.md
    $ git commit -m "AND simple"
    
    $ git checkout master
    
    # 修改 README.md 
    # Creating a new branch is quick & simple.
    $ git add README.txt
    git commit -m "& simple"
    
    # 生成不同的两条线
    # 目前在 master 分支上
    $ git merge feature1
    
    # CONFLICT!!!!!!!!!! 冲突
    # vi README.md
    $ git add README.md
    $ git commit -m "conflict fixed"
    

    冲突合并,修改

    分支管理策略

    $ git checkout -b dev
    $ vi README.md
    # ...
    $ git add README.md
    $ git commit -m "add merge"
    
    # 切回 master
    $ git checkout master
    
    # --no-ff no Fast forward
    $ git merge --no-ff -m "merge with no-ff" dev
    

    默认使用 Fast forward 会丢掉分支消息,强制禁用增加参数 --no-ff

    $ git log 00graph --pretty=oneline --abbrev-commit
    

    用图形查看分支历史

    分支策略

    • master 非常稳定、用来发布新版本
    • 在 dev 上开发
    • 每个人有自己的分支

    Bug 分支

    $ git stash
    

    暂存工作现场

    $ git checkout master
    $ git branch -b issue-1
    $ git add README.txt
    $ git commit -m "fix bug 1"
    $ git checkout master
    $ git merge --no--ff -m "merged bug fix 1" issue-1
    $ git branch -d issue-1
    

    bug 修复

    $ git checkout dev
    $ git git stash pop
    

    恢复现场

    $ git stash list
    

    查看暂存列表

    $ git stash apply stash@{0}
    

    恢复指定 stash

    多人协作

    队友操作

    $ git clone git@github.com/KayorLien/lutu.git
    
    $ git checkout -b dev orgin/dev
    $ git add hello.js
    $ git commit -m "add an comma"
    

    自己操作

    $ git add hello.js
    $ git commit -m "Add coding: utf-8"
    
    # REJECTED
    $ git branch --set-upstream-to origin origin/kayor
    $ git pull
    
    # 解决冲突
    $ git commit -m "merge & fix hello.js"
    

    标签管理

    # 打标签
    # commit id: 283745
    $ git tag -a v0.1 -m "version 0.1 released" [commit id]
    
    $ git push origin tagname
    
    # 推送所有未推过的标签
    $ git push origin --tags
    
    
    Git Cheat SheetGit Cheat Sheet

    相关文章

      网友评论

          本文标题:Git 全方位

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