• 代码版本管理工具,定要先更新后提交,git提交本地,推送远程


    集中式版本控制系统---中央服务器(不安全)--图书馆借书--必须要联网--提交代码到中央

    CVS

    SVN

    ----受限与网络,回退,多版本分支

    Maven--https://mvnrepository.com

    分布式版本控制系统-----git----这个 “中央服务器” 只是为了方便大家“交换”修改,每个人的电脑上都是一个完整的版本库(安全),不需要联网--提交代码到本地

    1 配置全局属性-用户名密码

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

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

    git  config --list 

    git  config -l 

    2设置仓库目录--初始化

    该目录下直接 git init 生成隐藏文件夹*.git

    或者git init --bare 直接是设置git仓库,不生成隐藏目录--用于搭建自己git远程服务

    3 仓库基本操作

    a 当前仓库状态 git status

    b 添加暂存库 git add 文件名/批量全部添加 git add .

    c 提交到本机本地版本库 git commit -m ”注释"

    不区分暂存库版本库,一步直接提交到版本库 git commit -a -m "注释"

    * 查看文件改动 git diff 文件名

    * 查看文件提交栈历史 git log 文件名--可得到 commit ID--用于版本回退

    注意:

    git 三区-工作区 暂存库 版本库Master       --历史穿越HEAD

    虽是同一文件,但要注意不同区域的修改!提交的结果

    添加后再修改,然后提交。此时后面的提交不应被提交。提交的是第一次添加的结果。

    * 版本穿越--回退切换--commit ID 与Master分支上的HEAD指针

    git log --pretty =oneline

    HEAD指的是当前正在使用的版本。最新的提交点

    改变了HEAD的指针--回退指定版本--  git reset --hard~1

    * 查看删除的提交点日志 git reflog  针对版本的操作,恢复指定版本

    git reset --hard id值   提交点就是恢复点

    * 撤销修改

    未add--工作区撤销--git checkout 文件名

    已add未commit--暂存区撤销--先撤到工作区,再回退内容

    git reset HEAD 文件名 + git checkout 文件名

    区域操作

    工作<——>暂存  git add /git reset HEAD

    暂存——>master分支 git commit

    * 文件删除

    工作区 del 文件名 再提交 git commit -a -m "删除"

    再恢复文件 git reflog --> git reset --hard id值

    未提交 git checkout 文件名

    总结:工作区恢复checkout,Master分支上用版本穿越git reset --hard id值

    远程仓库服务器----国内外代码托管网站----在线的基于Git的代码托管服务平台

    github

    git remote add origin git@github...

    git push -u origin master

    注意仓库初始化,远程初始化就克隆,远程没有初始化就本地初始化然后推送过去

    gitee

     ......

     模块代码与分支代码

    每个模块可能都有不同分支

    多个模块多个分支

    * 分支创建与合并

    Git规定所有要使用的分支将其定义在Master分支上。Master里的代码是提供给用户使用的,稳定!

    开发过程会不断变化调试。所有的合作开发要在子分支上。最后反合主分支!

    维护开发必须要在原有基础上创建新的分支!

    所在模块本地分支 git branch

    在该版本库创建新分支名 git barach 分支名   (在最后一个提交点创办的)

    切换分支 git checkout dev分支名 (HEAD指向修改)

    在新分支上开发---新分支比master分支代码更多

    开发完毕,切回主分支开始 分支合并/代码返合/

    git checkout master  合到哪,切到那!

    git merge 分支 即快速合并,前提条件,master分支没有任何变化

    其实改变master指向最方便(Fast-forward),HEAD指向随当前分支/操作而改变!

    git push -u origin(指代远程)  分支名如master

    git push -u origin dev  将分支提交到远程后,在github就可以看见分支信息

    * 本地库删除分支 git branch -d 分支名

    远程库也删除

    git push orgin --delete 分支名 直接删除

    git push orgin:分支名 推送空分支覆盖

    冲突修改----一个文件被多人修改

    git checkout -b dev ==创建并切换到那个分支

    git merge 分支名 -->出现conflict,同时该分支上的文件内容会有标记!

    解决冲突后,查状态,再git commit -a -m ""

    分支合并模式

    git log --graph --pretty=oneline

    Fast-forward 提交方式没有提交点!不会产生提交信息!

    git merge --no-ff -m "注释" 分支名   ; “-no-ff” 参数即no fast forward模式

     

    实际中,master分支上不允许进行开发,master分支是要提供给客户,最终形式发布的!

    所有人在dev分支上合并后,并且调试完毕后,在合并到主分支,进行测试回归,最后发布!要使用“-no-ff” 参数 即 no fast forward模式。产生新的提交点!

     工作区暂挂,当前分支没搞完,要紧急去处理另一分支的修改提交。

    git stash 暂存分支

    git stash list

    * 恢复挂起

    恢复挂起的工作区 git stash apply  + 删除暂挂区 git stash drop

    直接一步到位 git stash pop 恢复工作区+删除暂挂区

    在主分支上 删除 其他分支!(自己不能删自己)  但git branch -d 分支名->该分支未合并,不允许删除!

    分支没合并就删除,用强制删除 -D

     补丁分支----不用分支合并,应用补丁修改主干分支

    git diff master > patch    命令行管道输出流,输出patch文件

    到master分支上应用这个补丁信息 ,git apply patch ,再添加提交推送(还不如直接在主分支上改

    修改需要通知远程开发者本人

    git format-patch -M master 该版本目录下会多了一个*.patch文件,里面记录了修改者及代码修改内容等信息

    把这个补丁拿到主干master分支上应用  git am *.patch ,再添加提交推送

    * 抓取github上xx分支,且变为本地 yy分支

    关联分支 git checkout -b yy origin/xx

     git pull 抓取失败

    git branch --set-upstream-to=origin/xx yy

     git pull 可以抓取

    标签

    git tag

    git tag v1.0

     git log --pretty=oneline --abbrev-commit

    git tag v0.1 7f111fe(commit id)

    git tag v0.1 -m "注释"

    git show v1.0

    git push origin v1.0

    git push origin --tags

    本地 git tag -d v0.1

    远程 git push origin :refs/tags/v1.0

    搭建git私服---略

    图片参考链接  https://myslide.cn/slides/3023?vertical=1

    命令参考链接 lxh

  • 相关阅读:
    Linux(Contos7.5)环境搭建之JDK1.8安装(二)
    python微信域名或者链接批量检测
    表单设计器3-查询面板
    表单设计器2-表格布局
    表单设计器1-基本操作
    信息无障碍国内标准
    信息无障碍国际标准
    信息无障碍服务对象
    信息无障碍定义
    E8.Net工作流开发问题
  • 原文地址:https://www.cnblogs.com/daofree/p/13658753.html
Copyright © 2020-2023  润新知