美文网首页
初遇git,svn

初遇git,svn

作者: baby_fb3c | 来源:发表于2021-03-15 13:53 被阅读0次

    集中式vs分布式

    https://lab.github.com/

    集中式版本控制系统:

    版本库是集中存放在中央服务器的,干活时,用的都是自己的电脑,要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。最大的毛病就是必须联网才能工作,如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟


    l.jpg
    分布式版本控制系统

    分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,工作时,不需要联网,因为版本库就在你自己的电脑上。
    多个人如何协作:你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。


    l (1).jpg

    在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

    git使用(Windows版本)

    • 下载 下载安装地址
      在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,Git安装成功
    • 配置账号
      注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    
    • 工作流程


      git.jpg
    常用命令

    mkdir <filename>:创建文件夹
    rm <filename>删除文件
    cd <filename>:进入文件
    pwd :查看当前所在目录
    ls -ah :显示.git文件夹
    vscode方法 :用户设置 > 文本编辑器 > Exclude,找到对应排除的项”/.git“,并删除它,隐藏的.git文件就会自动出现

    我是一条分接线=================================================
    创建仓库:git init
    添加文件:git add <filename> 添加文件至暂存区(git/index),可反复执行添加多个文件
    提交: git commit -m "xxx" 提交暂存区至当前分支仓库
    查看状态: git status
    差异:git diff <filename>
    简单log信息 :git log --pretty=onelin
    git reflog :查看所有历史记录(包括回退等,后悔药)

    反悔性操作

    git checkout --<filepath 可多个> : 丢弃工作区修改(命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令)
    git reset HEAD -- <filepath> 取消暂存(add过的文件会重新放入工作区)
    (commit 我是一条分界线==================================)
    git reset --hard HEAD^ :回退上个版本 (^^上上个,)
    git reset --hard <commit id>回退指定版本号

    删除性操作

    只是本地删除:rm <filename>
    恢复本地删除的文件 : git checkout --<filename>
    删除版本库文件 : git rm <filename> git commit -m ‘delete’
    查看分支: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 branch -D <name>

    多分支工作

    用法参考:https://blog.csdn.net/java_lifeng/article/details/103687114?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=bc92ebe7-d1ff-432f-8ed6-2a11523f2eb5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
    保留A分支工作现场:git stash
    查看保留记录:git stash list
    还原工作现场:git stash pop (还原并清除存储) /Git stash apply (要用git stash drop去删除存储)
    复制某个分支的提交至当分支:git cherry-pick <commit id>

    git rebase

    版本快照
    设置tag : git tag <tagname>
    设置固定版本 的tag:git tag <commit id>

    取消本地分支和远端的映射:git branch --unset-upstream


    image.png

    相关文章

      网友评论

          本文标题:初遇git,svn

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