zoukankan      html  css  js  c++  java
  • Git基础

    1.创建版本库

    $ mkdir learngit        // 创建工作区(目录文件夹)learngit,命名最好都用英文
    $ cd learngit       // 打开目录
    $ pwd            // 查询存储位置
    $ git init       // git init命令把这个目录变成Git可以管理的仓库,如果你没有看到 .git(Git版本库) 目录,那是因为这个目录默认是隐藏的,用

    ls -ah命令就可以看见

    //然后在learngit 文件夹中写入readme.txt文件,并写入内容
    //这样就可以将写好的文件添加到版本库中

    $ git add readme.txt  //命令git add告诉Git,把文件添加到仓库
    $git commit -m "wrote a readme file"   //git commit告诉Git,把文件提交到仓库, git commit 命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。
    $ git add file1.txt
    $ git add file2.txt file3.txt
    $ git commit -m "add 3 files."  //add可以一次添加已经写好的多个文件,而commit可以一次就说明添加的所有文件。-m "修改的记录名"(最好清晰的指出)
    2. 修改文件内容,查看与提交

    $ git status     //  显示文件的状态,若修改了reradme.txt文件,此命令可以让我们时刻掌握仓库当前的状态,readme.txt被修改过了,但还没有准备提交的修改。
    $ git diff        //显示修改的具体内容

    3.版本回退

    $ git log       //记录commit的不同(id不同),即显示上文的每次修改,是commit -m "修改的记录名",简化版本的为 $ git log --pretty=oneline
    //首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交id,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

    $ git reset --hard HEAD^ //把当前版本回归到上一个版本,就可以使用 git reset 命令、
    $ cat readme.txt      //cat+文件名即查看文件内容
    $ git reset --hard id    //就可实现跳转到那个版本的commit中,此 id 即为那时 提交 的 commit 的 id ,写前几位即可(具体参照廖雪峰官方
    $ git reflog        //记录所有的 HEAD 的变化,因此即便你丢失关闭了命令行,你也能找出那个你需要版本的 commit 的 id.

    4.每次修改,只有先将工作区的内容add放入暂存区(stage)后再commit放入master ,文本内容才能真正的被放在master中
    5.撤回

    $ git checkout -- readme.txt      //git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
    $ git reset HEAD readme.txt       //将文件撤回到工作区中,即从暂存区stage移回工作区
    $ git reset --hard HEAD^/id       //将 MASTER 中的到上一次(以上的命令在执行时,Git的工作平台会显示相应的提示的,相应往上面推)
    类似:
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

      场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

      场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交

     
    6.删除文件
    $ rm test.txt                 //删除文件test.txt 
    7.将文件推送到github (将本地库的master中的文件上传至github远程库)  

    $ git remote add origin git@gtihub.com:your githubname/your_file_name.git    //远程推送至github
    $ git push -u origin master              //第一次推送master分支的所有内容;
    $ git push origin master                 //之后的每一次推送
     8.从远程库中克隆到本地库中

    $ git clone git@git.com:your_github_name/your_file.git      //从远程库中克隆至本地库

    9.分支管理

    (1)定义:自己在github中拥有一个独立的工作空间,只要自己才能运用及看到的空间,便于工作。

    (2)创建和切换至dev分支: $ git checkout -b dev 相当于 $ git branch dev + $ git checkout dev
     // 用 $ git branch 命令查看当前分支,当前分支前会有 * 号标志
    (3)更改文本内容后,切换至master分支
    $ git checkout master        // 切换后会发现本次更改的内容不见了,有回归到了本次未更改的状态

    (4)合并分支,目的是将上次在dev分支下更改的内容合并到master分支
    $ git merge dev 

    (5) 删除分支 $ git branch -d dev  

    (6)手动解决分支冲突 参照廖雪峰
    //创建新分支后修改文本内容,然后add,commit,再返回master分支,再修改内容,再 add,commit 。之后合并时会发现有冲突,此时就手动在文本文件中删除那些---《《《信息,然后修改add ,commit,之后再删除分支。

  • 相关阅读:
    HTML5 localStorage and sessionStorage
    WebViewJavascriptBridge-Obj-C和JavaScript互通消息的桥梁
    js控制手机号码中间用星号代替
    无法删除登录名 '***',因为该用户当前正处于登录状态。 (Microsoft SQL Server,错误: 15434)
    在QT中添加LIB的方法
    Android颜色代码
    判断ubuntu是32位还是64位
    Android应用市场App发布
    ubuntu目录结构(转)
    QT调用CHM方法
  • 原文地址:https://www.cnblogs.com/aestheticism/p/5330859.html
Copyright © 2011-2022 走看看