Git总结

作者: 最黑暗的自己 | 来源:发表于2020-10-18 21:21 被阅读0次

    以下为git常见指令的节点变化


    图示git.jpg

    以下文字总结参考廖雪峰的git教程

    分布式版本控制系统

    配置仓库的使用者(--global 表示这台机器所有git仓库都使用这个配置)

    $git config --global user.name ""
    
    $git config --global user.email ""
    

    版本库(repository) - 被git所管理的目录

    1、创建空目录

    $mkdir learngit //创建learngit文件夹
    
    $cd learngit //进入learngit文件夹
    
    $pwd //显示当前目录
    

    2、将目录变成git可以管理的仓库

    $git init
    

    3、在仓库里创建文件

    $git add xxx.txt //把文件加到仓库    ----------------   $git checkout //撤销工作区的修改,把暂缓区的最新版本移到工作区
    
    $git commit -m "提交的说明" //把文件提交到仓库
    

    1、$git status//查看仓库当前的状态

    比较区间版本

    区间:

    1、工作区 (working tree)

    2、暂缓区(index/stage) - 执行git add后

    3、本地仓库(repository) - 执行git commit后

    $git diff// 查看working tree 与 index的差别
    
    $git diff --cached// 查看index与repository的差别
    
    $git diff HEAD//查看working tree与repository的差别,其中HEAD代表最近一次commit的信息
    
    回退
    版本回退
    $git log//查看提交日志
    
    $git reflog//查看历史提交日志,每条日志都有
    
    $git log --pretty=oneline//查看提交日志(一行)
    
    $git reset --hard HEAD^ //回退回上一个版本(head^^上两个版本,head~100往上100个版本)
    
    $git reset --hard 1094a //回退至指定版本
    
    $cat readme.txt//查看指定文件
    
    撤销修改
    git checkout -- file //1、未放置暂存区,撤销回到版本库一样的状态 2、已加到暂存库,又做了修改,撤销回到添加到暂存区后的状态(回到最近的一次git commit或者git add状态)
    
    git reset HEAD readme.txt//将暂存区的修改撤销,重新回到工作区
    

    1、想直接丢弃工作区的修改 git checkout

    2、想丢弃暂存区的修改 git reset HEAD ->git checkout

    3、想丢弃版本库的修改 git reset --hard

    删除文件
    git checkout -- readme.txt //工作区删除文件,但是版本库还留存,可以恢复文件
    
    git rm readme.txt //从版本库删除文件
    

    先手动删除工作区文件后,想从版本库删除文件

    git add readme.txt 与 git rm readme.txt 效果一致

    远程仓库
    添加远程库
    git remote add origin https://github.com/mirse/learnGit.git //关联远程库
    
    git push -u origin master //第一次推送master分支的所有内容  -u git不但会把本地分支推送到远程,并且会把二者关联起来
    
    git push origin master //每次本地提交后,推送最新版到远程
    
    从远程库克隆
    git clone https://github.com/mirse/WeatherDemo.git //从远程库克隆
    
    分支管理
    创建和分支合并
    git branch //查看分支
    
    git branch <name> //创建分支
    
    git checkout <name> 或 git switch <name> //切换分支
    
    git checkout -b <name> 或 git switch -c <name> // 创建并切换分支
    
    git merge <name> // 合并某分支到当前分支
    
    git branch -d <name> //删除分支
    
    解决冲突

    合并分支时可能遇到冲突,根据文本提示解决后重新git add ->git commit

    <<<<<<< HEAD   (HEAD表示当前)
    Creating a new branch is quick & simple.
    =======
    Creating a new branch is quick AND simple.
    >>>>>>> feature1 (feature1表示要合并的分支)
    
    git log --graph //查看分支合并图
    
    分支管理

    如果使用禁用fast forawrd模式,git会在merge时生成一个新的commit

    git merge <name> // 合并某分支到当前分支(默认使用ast forward模式)
    
    git merge --no-off --m "说明内容" <name> //合并分支不使用Fast forward模式
    
    bug分支
    git stash //贮藏当前文件修改
    
    git stash list//查看贮藏列表
    
    git stash pop//应用贮藏,同时把stash内容删除
    
    git stash apply stash@{0}//应用贮藏,但是stash内容不删除
    
    git stash drop//删除贮藏
    
    git cherry-pick <commitId> //复制一个特定的提交到当前分支
    
    分支强制删除
    git branch -D <name>
    
    多人协作
    git remote -v //查看远程库信息
    
    git push origin branch-name //从本地推动分支
    
    git checkout -b branch-name origin/branch-name //在本地分支创建和远程分支对应的分支
    
    git pull //从远程抓取分支
    
    Rebase
    git rebase //将本地未push的分支提交历史整理成直线
    
    标签管理
    创建标签
    git tag <tagname> //新建一个标签(HEAD)
    
    git tag <tagname> commitId //在commitId新建一个标签
    
    git tag -a <tagname> -m "blblbl" //创建带有说明的标签
    
    操作标签
    git push origin <tagname> //推送一个本地标签
    
    git push origin --tags //推送全部未推送过的本地标签
    
    git tag -d <tagname> //删除一个本地标签
    
    git push origin :refs/tag/<tagname> //删除一个远程标签
    
    使用Github

    1、在gitHub上可以fork任意开源仓库

    2、拥有fork仓库的读写权限

    3、修改后可以pull request给官方仓库

    使用Gitee
    1、(1)ssh-keygen -t rsa -C "your email" ->(2) cat ~/.ssh/id_rsa.pub ->(4)ssh -T git@gitee.com
    
    //(1) 本地电脑生成ssh密钥,-> (2)查看ssh密钥 ->(3) 添加到gitee->(4) 确认并添加主机到本机ssh可信列表
    
    2、git remote -v //查看远程库信息
    
    3、git remote rm origin //删除已有的github远程库
    
    4、 git remote add origin git@gitee.com:menghuanqv/test.git //关联gitee远程库
    
    本地库同时关联github与gitee
    
    使用多个远程库时,git默认给远程库起的默认名字是origin,如果有多个远程库,我们需要用不同的名称来表示不同的远程库。
    
     git remote add github git@gitee.com:menghuanqv/test.git
    
     git remote add gitee git@gitee.com:menghuanqv/test.git
    

    推送:

    git push github master  //推送到github
    
    git push gitee master //推送到gitee
    
    自定义git
    忽略特殊文件
    .gitignore //在文件里添加需要忽略的文件
    
    git add -f //强行添加忽略文件所忽略的文件
    

    相关文章

      网友评论

          本文标题:Git总结

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