git 版本控制器的使用

  1. GIT安装

    sudo apt-get install git     ubantu下安装git

  1. 查看GIT版本

    git –version       查看git的版本信息

  1. 初始化并且创建一个空的REPO

    git init        初始化并创建一个空的repository

    git clone [url]   复制repo到本地

  1. GIT的配置 (cat ~/.gitconfig )

    git config  -–global user.name Dylan

    git config  –-global user.email  [email protected]

    git config  --global color.ui  true              开启颜色显示

    git config  --global alias.unstage “reset HEAD”    设置别名

    git unstage  =====  git reset HEAD

  1. 查看配置信息

    git config –list              列出已经配置了的配置信息

  1. 添加文件和提交文件

    git add file                 将工作区文件添加到暂存区

    git commit –m “message”    将暂存区文件添加到版本库

   git commit –am “message”   直接将工作区文件添加到版本库

    git commit –amend         修改版本库并提交(需先暂存)

  1. 查看版本库信息

    git status        查看工作区和暂存区的文件状态

    git status –s      简略显示工作区和暂存区的文件状态

  1. 设置暂存时的忽略文件
  2. 在所处目录下创建 .gitignore文件,
  3. 在文件中添加需要忽略文件的文件名,
  4. 可以添加忽略该文件本身,(echo “.gitignore “ >> .gitignore)
  5. 可以使用 git status --ignored查看忽略文件。
  6. GIT当然提供了方法,只需在主目录下建立".gitignore"文件,       
  7. 此文件有如下规则:

    1).所有以#开头的行会被忽略

    2).可以使用glob模式匹配

    3).匹配模式后跟反斜杠(/)表示要忽略的是目录

    4).如果不要忽略某模式的文件在模式前加"!"

比如:

    ① # 此为注释 – 将被 Git 忽略

    ② *.a # 忽略所有 .a 结尾的文件

    ③ !lib.a # 但 lib.a 除外

    ④ /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO

    ⑤ build/ # 忽略 build/ 目录下的所有文件

    ⑥doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

  1. 查看文件的具体操作变化

    git diff               查看工作区和暂存区的变化

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

    git diff –catched       查看暂存区和版本库的变化

    git diff –stat HEAD      简略查看工作区与版本库的变化

  1. 撤销与恢复

    git reset             将版本库的内容直接覆盖暂存区

    git checkout  - -file    将暂存区file文件内容覆盖工作区

    git checkout HEAD     将版本库的内容直接覆盖工作区

  1. 删除与重命名

    git rm file          删除文件并且无法提交到版本库

    git clean  -df       删除工作区未添加到暂存区的文件和目录

    git rm –cached file   保留工作区file,删除版本库file

    git mv oldfile newfile   更改文件名

  1. 临时保存当前目录下的文件

    git stash                 将当前工作进度存入临时的栈中

    git stash list              列出存入栈中的工作进度

    git stash pop stash@{n}     弹出保存的工作进度n

  1. 查看版本库的提交日志

    git log             查看版本库的提交日志

    git log  --oneline  --graph  简略的查看版本库日志

  1.     查看分支的类型及大小

    git cat-file  -t  branch        查看branch所属的类型

    git cat-file  -p  branch        查看branch的基本信息

    git cat-file  -p  sha(哈希值)    查寻哈希所对应文件内容

15.    查看版本库中的所有文件

     git ls-files                  查看当前版本库所有文件

     git ls-files --stage            查看版本库文件以及显示哈希值

16.    查看分支的哈希值

      git rev-parse  HEAD      查看HEAD指向的哈希值

      git rev-parse  HEAD~      查看HEAD指向的下一个的哈希值

      git rev-oarse HEAD~^{tree}   查看HEAD指向的下一个的树的哈希值

      git rev-parse  HEAD~:hy.c    查看HEAD间接指向的hy.c文件的哈希值

      gti show HEAD~:hy.c         查看hy.c文件的内容

17.    创建和删除分支结构

      git branch              列出所有的分支结构

      git branch  newbranch   创建分支结构newbranch

      git branch  -d branch     删除已经合并过的分支结构branch

      git branch  -D branch     删除未合并过的分支结构branch

      git checkout  branch      切换到branch分支结构中去

      git checkout -b newbranch  创建并切换到newbranch分支结构

      git branch–m oldbranch  newbranch   更改分支结构git名

18.    合并分支结构

    git merge branch           将branch分支合并到当前分支上

    git rebase branch           合并分支branch到当前分支上

19.    分享和更新项目

    git remote                    列出远端仓库别名

    git remote  -v                 列出远端仓库别名的URL

    git remote add  [alias] [URL]     为项目添加新远端仓库

    git remote rm  [alias]           删除远端仓库别名

20.    从远端仓库下载和推送到远端仓库

    git fetch  [alias]            从远端仓库下载到本地,但不合并

    git pull   [alias]            从远端仓库下载到本地,并且合并

    git push [alias]/[branch]      从本地推送数据到远端仓库

21.    设置版本库别名

    git tag                             查看版本库的别名

    git tag –a alias –m “message”        设置版本库的别名

    git tag –d  alias                      删除版本库的别名

    git log  --oneline  --graph  --decorate   查看别名具体信息

 

git 删除 错误 提交的 commit

方法: 
        根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
    git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
    git reset --soft:回退到某个版本,只回退了commit的信息(撤销HEAD指向的git commit),不会恢复到index file一级。如果还要提交,直接commit即可
    git reset  --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!(返回到HEAD指向的,工作区 暂存区 版本库都返回)
 git reset HEAD -- filename   :  取消 对filename 文件的错误git add 操作。

    HEAD 最近一个提交
    HEAD^ 上一次提交

    HEAD^ ^ 上一次的 上一次的提交(倒数第三次)

    HEAD^^^ 倒数 第四次的 提交

----------------------

    HEAD~0 最近一个提交
    HEAD~1 上一次提交

    HEAD^2 上一次的 上一次的提交(倒数第三次)

    HEAD^3 倒数 第四次的 提交

 

你可能感兴趣的:(git,版本控制器)