• git 使用


    相信小伙伴们对git不陌生吧,但是究竟git是怎么样工作的,它的构成又是怎么样的呢?我们来看看:

    上图很明显的说明,git是又4个部分组成的:

    工作区域--add-->暂存区域--commit-->本地版本仓库--push-->远程版本仓库


    基本指令

    1. add

    git add -u:将文件的修改、文件的删除,添加到暂存区。
    git add .:将文件的修改,文件的新建,添加到暂存区。
    git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。

    虽然网上是如上这么说,但是我试过好像git add .  和git add -A 效果是一样的。

    2.commit

    commit -m:把暂存区的内容提交到本地版本区

    commit -a -m:相当于git add -u和git commit -m组合

    3.log

    可以查看每个commit的版本号:

    4.reflog

    和log很像,比log能看得更多,git reset也可以看到

    5.reset

    reset: "git reset --hard 版本号" 执行这句就可以回滚代码回到对应的版本了,我们常用回滚本地分支的代码

    其中版本号是上面红框的随机字符串,和git log的commit右边的字符串,一般取开头的几位就ok了

    例如git reset --hard ad208

    6.revert

    revert:也是回滚版本,不过只是回滚代码,不回滚版本号,我们常用这个来回滚已经提交上远程分支的代码

    例如:git revert 版本号 

    ps:我们更多的会用到revert来回滚代码,如果用reset来回滚,很容易导致和远程分支发生冲突

    当然我们revert后,通常会先commit然后pull一下代码来merge一下

    7.checkout

    checkout(checkout的本质其实都是checkout hash): 

    git checkout master // 切换到master分支
    git checkout tag123 // 切换到tag123这个标签对应的commit节点(注意:这样切换后,就不属于任何分支了,因为tag是只读的)
    git checkout <hashStr> // 切换hash字串对应的某个commit节点(跟标签一样,这样切换后,就不属于任何分支了,因为tag是只读的)
    git checkout 'ab30292fd7bab6beb46' -- package.json // 只把某个文件切换到某个commit节点的状态
    git checkout 'ab30292fd7bab6beb46' -b feat-new-branch // 从某次提交,创建新分支

    checkout -b:

    git checkout -b aaa // 从当前节点,创建并切换到aaa分支

    新建的本地分支push到远端:

    git push --set-upstream origin [新分支名]

    8.merge

    merge: merge aaa 合并aaa分支的代码

    9.branch

    branch: 列出本地分支

    branch -r:列出远程分支

    branch -a:列出全部分支

    branch haha:创建叫haha的分支

    branch -D haha:删除本地分支haha

    branch -D -r origin/haha:删除远程分支haha

    同步远端分支

    10.clone

     git clone xxx.git "指定目录" :克隆远程仓库代码到指定目录

    ps:上面所说的版本号可以是git reflog或者git log的版本号,也可以是某一个branch的名字或者head[~number]


    回滚代码的总结:

    1. 自己的分支回滚直接用reset
    2. 公共分支回滚用revert
    3. 错的太远了,只能手动修改

    10 .stash 

    git stash 暂存本地修改

    git stash pop 本地修改恢复到工作区

    git stash list 查看暂存区数据

    git stash pop stash@{idx}

    11. remote

    git remote show origin 查看远端分支情况(包含和本地分支的关系)

    git remote prune origin 删除本地对应远端已删除的分支

    git remote add 名字 git@git.xxxx:xxx/xxx.git 添加远程仓库

    git remote -v 显示对应的克隆地址

    12. 批量删除branch(利用linux的grep工具)

    git branch |grep "bugfix" |xargs git branch -d

    13.让分支指向某次提交

    git branch -f dev [hash]

    14. 修改历史

    git filter-branch

    推荐阅读:Git 工具 - 重写历史

    15. git submodule 和 subtree

  • 相关阅读:
    SVN--代码状态检查(图文并茂)
    SVN服务器的环境搭建(图文并茂)
    SVN基本配置--创建版本库(图文并茂)
    GPS定位(GPS导航)GPS授时三者是一个概念吗?
    北斗授时服务器(北斗时钟服务器)助力工业组态监控系统
    浅谈PTP精密时钟同步(GPS北斗授时)原理及应用
    NTP时间同步服务器(时钟服务器)如何助力桥梁监控系统的?
    网络时间服务器(NTP服务器)应用铁路计算机联锁系统
    NTP时钟服务器(时钟系统)助力阜阳卷烟厂
    子母钟系统(GPS授时系统)工作模式介绍
  • 原文地址:https://www.cnblogs.com/amiezhang/p/8351771.html
Copyright © 2020-2023  润新知