zoukankan      html  css  js  c++  java
  • git记录

    安装git

    git config --global user.name  " 你的昵称随意"

    git config --global user.email  "  你的邮箱"

     

    git相关命令记录(廖雪峰Git :  https://www.liaoxuefeng.com/wiki/896043488029600

    通过git init命令把这个目录变成Git可以管理的仓库:

    用命令git add告诉Git,把文件添加到仓库可以多次add不同的文件:commit文件前必须先将文件add到暂存区文件在暂存区进行修改之后需要重新add一次:git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支,每次修改,如果不用git add到暂存区,那就不会加入到commit中。

    用命令git commit告诉Git,把文件提交到仓库 -m 后面输入的是本次提交的说明:

    1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
    2. 使用命令git commit -m <message>,完成

    运行git status命令看看结果:

    git diff顾名思义就是查看difference

    版本回退

    git log命令显示从最近到最远的提交日志命令  查看我们历史记录 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

    后退我们要把当前版本回退到上一个版本,就可以使用git reset命令:上一个版本就是HEAD^,上上一个版本就是HEAD^^  命令格式 git reset --hard HEAD^ 前进(这是在当前操作的窗口没有关闭的情况)如果要上一个版本回到当前版本git reset --hard 1094a 版本号没必要写全,前几位就可以了

    当前窗口关闭无法找到版本号 Git提供了一个命令git reflog用来记录你的每一次命令:git reflog

             

    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

     用git diff HEAD -- 文件名  命令可以查看工作区和版本库里面最新版本的区别:

    撤销修改

    git checkout --readme.txt  可以丢弃工作区的修改:意思就是,把这个文件在工作区的修改全部撤销,这里有两种情况:

    一种是readme.txt自修改后还没有被放到暂存区没有执行add操作,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后已经执行add操作,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commitgit add时的状态。

    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

    用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    删除文件

     rm 文件删除工作区文件然后 是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

    命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

    创建与合并分支

    创建dev分支,然后切换到dev分支 : git checkout -b dev  git checkout命令加上-b参数表示创建并切换,相当于以下两条命令: git branch dev  git checkout dev  然后,用git branch命令查看当前分支:git branch命令会列出所有分支,当前分支前面会标一个*号。

    dev分支的工作成果合并到master分支上:git merge devgit merge 命令用于合并指定分支到当前分支

    删除dev分支了:git branch -d dev

                         查看分支:git branch

                         创建分支:git branch <name>

                         切换分支:git checkout <name>

                        创建+切换分支:git checkout -b <name>

                        合并某分支到当前分支:git merge <name>

                         删除分支:git branch -d <name>

    分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

    git merge --no-ff -m "merge with no-ff" dev 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    Bug分支

    你现在手上有两个工作新需求还没有干完(暂时还不能提交估计还要搞一天)还有一个问题是测试那边有一个bug需要赶紧修复(2小时之内解决)  难受难搞

    Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

    git stash
    步骤创建零时的bug分支去解决bug之后提交合并分支
    然后切换到dev目录进行干活 , 用git stash list命令看看:Git把stash内容存在某个地方了,但是需要恢复一下

         有两个办法:

                   一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

                   另一种方式是用git stash pop,恢复的同时把stash内容也删了:

         再用git stash list查看,就看不到任何stash内容了:

                你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

           $ git stash apply stash@{0}

        场景 : master bug修复了但是dev分支也存在这个bug

                    Git专门提供了一个cherry-pick命令,让我们能复制一个特定的提交到当前分支:

            git cherry-pick <commit> 提交的版本号git cherry-pick,我们就不需要在dev分支上手动再把修bug的过程重复一遍。
     
     

     

      

    git config --list   查看你添加的信息

    ssh-keygen -t rsa -C "你注册github的邮箱"  生成本地秘钥  一路空格 或者y即可

    pwd 查看你所在的目录 

    切换到C:根目录

       ssh -T git@github.com 查看git是否和github连通

    在github上新建项目

    在本地新建一个工作目录使用     使用git命令工具一步一步执行命令

    echo "# demo" >> README.md 创建文件并写入

    git init 初始化工作目录
    git add README.md  添加相应文件到index
    git commit -m "first commit" 提交已经相关信息
    git remote add origin https://github.com/*****/demo.git  远程git地址
    git push -u origin master  提交到远程仓库

      git remote -v查看所有的仓库

  • 相关阅读:
    设计模式之解释器模式
    设计模式之中介者模式
    设计模式之职责链模式
    设计模式之命令模式
    设计模式之迭代器模式
    设计模式之备忘录模式
    设计模式之状态模式
    【转】CSS中position属性( absolute | relative | static | fixed )详解
    【转】fiddler-http协议调试代理工具
    TCP/IP、Http、Socket的区别
  • 原文地址:https://www.cnblogs.com/jiahaoJAVA/p/10123462.html
Copyright © 2011-2022 走看看