• Git


    一、安装配置

      1、下载地址官网文档易懂文章(推荐阅读), 《Pro Git》中文版, Xcode 5 and Git

      2、修改配置文件

    $ git config --global user.name "GitHub Account Name"
    $ git config --global user.name "GitHub Account Email"

     $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" # 自定指令 git lg 来查看 log

    二、杂七杂八知识

      1、常用指令

    git config --system(/etc/gitconfig): 系统中对所有用户都普遍适用的配置
    git config —global (~/.gitconfig): 用户目录下的配置文件只适用于该用户
    git config --list: 查看配置信息
    git config user.name/others: 查看某个配置变量属性

    git help <verb>  查看帮助
    git log 查看提交记录
    git log --pretty=oneline  以简便的形式查看记录
    git reflog 记录用户的每一次命令
    git status 查看修改的文件记录
    git reset --hard HEAD^  退回上一个版本(HEAD:为当前版本 HEAD^:上一个版本,HEAD^^: 上上一个版本)
    git reset HEAD fileName  把缓存区的某些文件替换为版本库的文件
    git diff fileName  查看修改文件和上一次提交了的版本的区别
    git diff HEAD -- fileName 查看工作区和版本库里最新版本的区别
    git checkout -- fileName  丢弃工作区的修改 (a、如果版本没有存到缓存区,就恢复到和版本库一模一样;b、如果已添加到缓存区,并做了修改,恢复到添加到缓存区的状态)
    git rm fileName  从版本库中删除文件,之后马上执行 commit 操作。
    $ git remote  # 查看远程库信息
    $ git remote -v  # 查看远程库详细信息  



      2、SSH 的配置 

      3、分支 

        策略:

          a) master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;应该创建一个 dev 分支,每个人又在 dev 分支上有自己的分支。在某个时候再合并到 dev 和 master 上。

          b) 并不是一定要把本地分支往远程推送

        •     master分支是主分支,因此要时刻与远程同步;

        •     dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

        •     bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

        •     feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

    $ git branch  # 查看当前的分支, 当前分支前会有 *
    $ git checkout -b xxx  # 创建 xxx 分支,并切换到该分支

    # 分支工作完成切换回 master 分支
    $ git checkout master  # 切换分支
    $ git merge xxx  # 如果是 "Fast Forward", 是不会执行一次 merge 操作的
    $ git merge --no-f -m "xxxxxxx" xxx  # merge 的时候,commit 一次

    $ git branch -d xxx  # 删除分支

    $ git log --graph --pretty=oneline --abbrev-commit  # 查看分支合并情况


    # 如果当前在 dev branch 任务只完成到一半,需要先处理 bug。(通常会创建新的 bug 分支进行修复,然后合并,最后删除。)
    $ git stash # 则应该把当前工作现场存储起来。
    # 切换回哪个分支上修改bug,修改完后 merge 那个分支。
    # 继续刚才保留现场的工作。
    $ git stash pop  # 恢复到 stash 内容,并删除 stash

    $ git stash list # 查看保留现场的记录


    # 添加新功能 (最好新建一个 feature 分支,在上面开发,完成后,合并,最后删除该 feature 分支。)
    $ git branch -D xxx  # 强行删除一个还没有 merge 的分支。


    $ git push origin xxx  # push 其他分支到远程库
    $ git checkout -b dev origin/dev  # 创建远程 origin 的 dev 分支到本地

        c) 多人协作的工作模式通常是这样:

        • 首先,可以试图用git push origin branch-name推送自己的修改;
        • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;(如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。)
        • 如果合并有冲突,则解决冲突,并在本地提交;
        • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

     

       4、标签

        创建的标签是存储在本地的,不会自动推送到远程。

    $ git checkout xxx  # 切到要加标签的分支上

    $ git tag zzz  # 打开一个新标签, 默认标签是打在最新提交的 commit 上。
    $ git tag zzz commitID  # 为指定的 commit 添加标签
    $ git tag -a zzz -m "xxx" commitID  # 为指定的 commit 添加标签,-a指定标签名,-m指定说明文字。
    $ git tag -s zzz -m "xxx" commitID  # 为指定的 commit 添加标签,-s添加 PGP 签名

    $ git tag  # 查询标签
    $ git show zzz  # 查看标签详细信息

    $ git tag -d zzz  # 删除标签

    $ git push origin xxx  # 推送某个标签到远程
    $ git push origin --tags  # 把本地的全部标签都推送到远程

    # 删除已经推送到远程的标签 (先把本地的该标签删除掉,再删除远程的改标签)
    $ git tag -d zzz
    $ git push origin :refs/tags/zzz
  • 相关阅读:
    【bzoj2733】[HNOI2012]永无乡 Treap启发式合并
    【bzoj1465/bzoj1045】糖果传递 数论
    【bzoj2768/bzoj1934】[JLOI2010]冠军调查/[Shoi2007]Vote 善意的投票 最小割
    【bzoj4003】[JLOI2015]城池攻占 可并堆
    【bzoj3011】[Usaco2012 Dec]Running Away From the Barn 可并堆
    【bzoj2809】[Apio2012]dispatching 贪心+可并堆
    【bzoj1455】罗马游戏 可并堆+并查集
    DOM的的概述
    wpf多程序集之间共享资源字典--CLR名称空间未定义云云
    WPF的Presenter(ContentPresenter)
  • 原文地址:https://www.cnblogs.com/eileenleung/p/3495728.html
Copyright © 2020-2023  润新知