zoukankan      html  css  js  c++  java
  • git-本地操作

    一、新建git仓库

    方式一:git init

    这种方式建立一个裸仓

    例如我们在d盘新建一个文件夹,然后输入git bash命令

    git init practiceOne 我们新建了一个空仓

    cd practiceOne/.git/ 进入git配置目录

    ls我们可以看到该目录下相关的git配置文件

    方式二:git clone XXXX

    这种方式通过拷贝一个远程仓库来新建一个本地git仓库。

    二、git基本命令

    2.1 git add:将文件添加到暂存区里头

    例如:

    git add fileA 【多个文件中间空格隔开】
    git add -A 【把整个工作区里头的文件提交到暂存区】
    git add . 和上一个命令一样作用

    2.2 git commit:将暂存区里头的文件提交到历史记录区【也就是远程终端】

    例如:

    git commit -m "commit fileA"

    2.3 git status:查看三个区的历史状态

    2.4 git rm:删除工作区里头的文件

    例如:

    git rm fileA

    删除缓存区里头的文件:

    git rm --cached fileA

    2.5 git reset:还原删除的文件

    例如:

    git reset HEAD fileA

    2.6 git mv:重命名或者移动文件

    例如:

    git mv fileA fileB 【将工作区和暂存区里头的fileA文件重命名为fileB】

    2.7 gitignore 这些文件将不被提交

    *.[oa]           //以o或者a结尾的文件不会被提交
    
    !test.pyc        //之前如果被忽略,现在要重新提交则在前面加!
    
    !test.pyc       //本身如果是!开头的文件,那就要在前面加个
    
    foo/或者src/     //以/结尾的代表匹配某个目录。
    
    **/res           //匹配所有res目录

     三、Git 本地分支与合并

    3.1 git branch 新建一个分支

    例如:

    git branch feature 

    或者也可以通过

    git checkout -b feature命令,创建分支并且切换到这个分支。

    删除一个分支:

    git branch -D feature

    3.2 git tag  给新的分支标记

    当一个文件修改多次的时候需要给这个文件打上tag:

    例如:

    通过以下命令可以查看分支以及相关的提交记录 

    git log --oneline --decorate --graph --all

     

    我们要给7ee67a0打上一个V0的版本tag,这个时候就可以输入两种命令:

    git tag "V0" 7ee67a0    //创建tag
    git tag -a "another" 7ee67a0    //创建副注tag

    然后再查看下引用可以看到已经打上了tag了。

    区别在于git tag -a "another" -m "another tag"

    多了副注信息。

    3.3 git checkout  切换分支

    git checkout feature 切换到feature分支
    git checkout --track feature   --新建一个远程跟踪且切换分支
    

    3.4 git stash

    当不同分支都修改同一个文件,已经提交到缓存区但是没有提交历史记录区,也就是执行了git add 没有执行git commit操作,这个时候使用checkout就会报冲突,要先提交修改的部分。

    这个时候可以通过git stash命令保存不同发分支文件。

    例如:现在feature分支修改master里头的的一个master.txt文件并添加到缓存区,切换回master分支的时候,

    这时会提示有内容修改,要么提交要么缓存一下。

     这个时候执行stash命令然后再切换回master分支,这时候就不报错了。

    git stash save -a "stash1"

    查看master分支下的master.txt文件还是原来master分支的。

    这个时候查看分支情况:

    stash是unracked 状态,说明在修改的内容只是暂时存在stash里头没有存在暂存区。

    通过git stash drop --index stash@{0}来丢弃刚才的暂存内容。查看分支:

    切换回feature分支,通过git stash list 可以查看有哪些stash。

    通过git stash pop --index stash@{0}或者git stash pop stash{0}恢复进度

    git stash apply[--index] [<stash>] 不删除已恢复的进度,其他同git stash pop
    git stash drop[<stash>] 删除某一个进度,默认删除最新进度
    git stash clear删除所有进度
    git stash branch <branchname> <stash>基于进度创建分支 

    3.5 git merge 合并分支

    git merge合并分支,可以合并由分支衍生出来的分支,
    git merge --abort取消分支合并。

     四、查看与历史比对

    4.1 git log 查看日志信息

    例如:

    git log --oneline --decorate --graph --all 可以查看历史分支,提交信息

    4.2 git show 显示是git 对象信息

    例如:

    git show master | --format=%T master^2【表示master底下的第二个副提交】等等。

    4.3 git diff  输出工作区与暂存区之间的差异

    也可以有其他组合

    例如:

    git diff --color-words
    git diff --word-diff 等等

    4.4 git diff --cached 查看暂存区与历史记录去的差异

    五、撤销修改 

    5.1 git checkout 除了创建|切换分支,还可以恢复分支

    例如:

    git checkout -- XXX文件

    或者可以从某一个历史提交里头恢复文件

    git checkout XXX记录 -- XXX要覆盖的文件

    5.2 git reset 撤销之前的修改

    例如: 

    git reset HEAD

     如果该分支是在HEAD指向的分支上,则可以用:git reset XXX文件名

    git reset xxx记录 -- xxx要覆盖的文件,可以将暂存区恢复到xxx记录。

    5.3 git clean 

    例如:

    git clean -n
    接着输入git clean -f就可以去掉不需要的文件了。

     git clean -n默认不去清除ignore里头的文件。

    若要清除,可输入:git clean -X -f 

    5.4 git revert 产生一个新的提交覆盖之前的提交

     

    常见问题:

    1、Not a valid object name: 'master'.错误

    想新建立一个分支时出现这错误。要先commit一次才会真正建立master分支,此时就可以新建立分支了。

  • 相关阅读:
    css(完)
    HTML学习(完)
    leetcode学习03
    多线程详解2(完)
    windows7 64位下安装apache和php
    一个js,记录方便查询。
    用了锚的时候,有的层被覆盖了。
    日,在ie10下面hover里不能控制table
    在实现tab的时候,margin-bottom:-1px无效的问题
    javascript中,在一个类里attache的event事件中,如果调用类的成员变量和方法
  • 原文地址:https://www.cnblogs.com/shawWey/p/6699280.html
Copyright © 2011-2022 走看看