git笔记

作者: 咖喱py | 来源:发表于2019-05-03 01:56 被阅读12次

    纲领:

    其实git的学习就是四个区之间关系转换的学习,以及各个区本身一些操作的学习。每个操作都有其特定的作用区。学习时注意区分,可事半功倍!

    注:尤其要注意,git是以修改为单位的。

    一、配置

    关键命令: "git config"

    git config --global user.name "yourName"
    git config --global user.email "email@example.com"
    

    二、初始化

    关键命令:"git init"

    //切换到工作目录,然后执行初始化命令
    git init
    

    三、添加文件

    关键命令:"git add xx.file"

    git add test.txt
    

    四、提交文件

    关键命令:"git commit -m "添加了xx.file文件""

    git commit -m "添加了test.txt文件"
    

    五、状态查看

    关键命令:"git status"

    git status 
    

    六、查看差异

    关键命令:"git diff xx.file"

    注:对比的是工作区与暂存区

    git diff test.txt
    

    七、查看版本历史

    关键命令:"git log" 、"git log --pretty=oneline"

    注:查看的都是repo库的改动

    git log
    
    #简化输出可用参数--pretty=oneline
    git log --pretty=oneline
    #等号两边没有空格
    

    八、回退历史版本

    关键命令:"git reset --hard commit_id"

    注:此命令其实就是修改repo库head指针的指向位置

    参数解释:

    git reset有三个主要参数

    • --soft -------->只有repo动
    • --mixed ----->repo和stage动(注:默认缺省值
    • --hard -------> repo、stage、workspace都动

    commit_id主要有两种表示方式

    • HEAD关键字表示
    • hash值前四位表示
    git reset --hard HEAD^
    #--hard 表示三个区域完全回退
    #HEAD^表示回退的目的地,^号表示HEAD指针的上一个版本。HEAD^也可用commit id的hash值的前几位替代,git会自动索引。
    git reset --hard 142e
    
    

    九、回流

    关键命令:"git reflog"

    注:作用与repo库

    git  reflog 
    #用于回流回退过的情况
    

    十、放弃工作区的修改

    关键命令:"git checkout -- xx.file"

    注:从暂存去签出,覆盖工作区。

    git checkout -- test.txt
    # --不能少
    

    十一、删除暂存区的内容(参考第八条)

    关键命令:"git reset HEAD xx.file"

    参数解释:

    • 默认缺省--mixed
    • xx.file在单一文件时可缺省,默认整个文件夹同时修改
    • HEAD指向当前head指针
      注:本质依旧是修改repo库的head指针,但因为缺省值同时修改了stage,所以效果像是删除了暂存区。
    git reset HEAD test.txt
    #此操作不会影响工作区
    

    十二、删除工作区文件

    关键命令:"git rm xx.file"

    注:在暂存区工作,同git add xx.file,所以还需要一步commit

    git rm test.txt
    #会先执行工作区的文件删除操作 `rm test.txt`
    
    git commit -m "rm test.txt"
    

    十三、远程仓库

    • ssh-keygen -t rsa -C "youremail@example.com"创建私钥与公钥
    • 在github添加公钥
    • 创建github仓库 (后续可直接按github的提示操作即可。)
    • 本地git工作区运行git remote add origin git@github.com:name/repoName.git关联本地repo与远程repo
    • 初次推送git push -u origin master
    • 后续推送git push origin master
    • 注:SSH警告可以忽略,直接yes

    十四、克隆项目

    关键命令:"git clone"

    git clone git@github.com:name/repoName.git
    #使用了ssh。也可以使用https。
    

    十五、分支

    关键命令:

    • git branch <name> 创建分支
    • git checkout -b <name> 创建并切换分支
    • git checkout <name> 切换分支
    • git branch 查看分支
    • git merge <name> 合并指定分支到当前分支
    • git branch -d <name> 删除指定分支
    git branch testDevA
    #创建分支A
    git checkout -b testDevB
    #创建并切换到B分支
    git checkout master
    #切换到主分支
    git branch
    #查看分支
    git merge testDevA
    #将A分支合并到主分支
    git merge testDevB
    #将B分支合并到主分支
    git branch -d testDevA
    #删除A分支
    git branch -d testDevB 
    #删除B分支
    

    十六、贮藏栈

    注:常用来暂存当前工作,去解决临时问题,之后再恢复工作。

    关键命令:

    • git stash 贮藏入栈
    • git stash pop 出栈并清空栈
    • git stash list 贮藏列表(可多次贮藏,然后查询,并用下面命令取出)
    • git stash apply 出栈
    • git stash apply stash{0} 指定贮藏出栈
    • git stash drop 清空栈
    git stash
    #贮藏
    git stash pop
    #取出
    

    十七、标签

    注:默认给最新的commit_id打标签,也可指定commit_id。
    注2:标签的显示是按照字母顺序的,不是时间顺序。
    注3:标签默认只存储在本地,需要而外推送远程库。

    关键命令:

    • git tag <tagName> 打标签
    • git tag 查看标签名
    • git tag <tagName> <commit_id> 给特定commit_id打标签
    • git show <tagName> 查看指定标签的详细信息
    • git tag -a <tagName> -m <describe> <commit_id> -a指定标签名,-m注释。
    • git tag -d v1.0 删除标签
    • git push origin <tagName> 推送特定标签
    • git push origin --tags 推送全部标签
    • git push origin :ref/tags/<tagName> 删除远端标签
    git tag v1.0
    git tag
    git tag v0.3 1e2c
    git show v1.0
    git tag -a v0.4 -m "this is a test" 3re4 
    
    #commit_id 可省略,默认最新commit_id。
    

    十八、git私服搭建

    待续。

    相关文章

      网友评论

        本文标题:git笔记

        本文链接:https://www.haomeiwen.com/subject/nmxanqtx.html