Git

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Git,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

19.Git
19.1.介绍
19.1.1.SVN
  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就不行了
  • 集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。
    • 但是相较于其优点而言,集中式版本控制工具缺点很明显:
      • 服务器单点故障
      • 容错性差
19.1.2.Git
  • Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。每个人的电脑都有一个完整的版本库,
  • 多人协作方式:自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,只需把各自的修改推送给对方,就可以互相看到对方的修改了。
       -------------------------Pull-------------------------
       |                                                    |
       |                                                    |
       |        (init)                                        V
    远程仓库 -----clone----->  本地仓库 -------checkout-----> 工作区
    Remote <------push----- Repository                          |        
                                ^                             |
                                |                             |
                              commit                        add
                                  |                             |
                                  |                             |
                                  ------------ 暂存区 <----------
                                            Index Stage
    
    • 名词介绍:
      • 远程仓库:远程服务器仓库,用于保存工程
      • 本地仓库:工作环境里的仓库,本地电脑存储
      • 暂存区:抽象空间,用于暂时存储工程变化
      • 工作区:开发过程面向的是工作区
19.1.3.区别
  • Git 与 SVN 区别点:
    1. Git 是分布式的,SVN 不是**:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
    2. Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
    3. Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
    4. Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
    5. Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
19.2.git使用
19.2.1.下载与安装
  • https://git-scm.com/download
  • 安装:安装过程无脑下一步就可以,记得中途检查是否勾选Enable Git Credential Manager
19.2.2.git配置命令
  • 在当前工程空白处右键,选择Git Bash here,打开命令窗口
  • 初始化
    • git init:初始化一个全新的仓库,隐藏文件夹里有.git文件夹
  • 声明身份
    • git config –global user.name “${用户名}” :设置用于展示在提交记录的用户名
    • git config –global user.email “${邮箱号}” :设置用于展示在提交记录的邮箱
    • git config –global credential.helper “store” :保存账号密码有效
  • 声明远程仓库路径
    • git remote add origin ${url} :声明想要提交的仓库的路径
  • 查看远程仓库地址
    • git remote -v :显示当前连接的远程仓库地址
      • 如果显示错误,那么先添加后删除
        • git remote rm origin
        • git remote add origin xxxxx.git
  • 查看全局配置信息
    • git config –list:列出所有git当时能找到的配置
    • git config –list –show-origin:查看所有的配置以及它们所在的文件
  • 检测是否成功连接上远程仓库0
    • git fetch
  • 输入用户名密码
    • 在执行某些命令是,初次配置,需要输入用户名密码,配置的是gitee或github,输入对应的账号密码即可,尽量一次性输入正确
    • 修改办法:如果因为某些原因,用户名密码修改了,依次打开路径 控制面板->用户账户->管理凭据->寻找修改密码
19.2.3.git同步命令
  • 从工作区提交至暂存区
    • git add “${文件名}” :提交发生变化的文件
    • git add src/main/* :提交main路径下的所有发生变化的文件
    • git add *.java :提交所有java文件的变化
    • git add . :提交所有发生变化的文件
    • git status :查看暂存区的文件修改状态以及提交状态,也可以查看冲突位置
  • 从暂存区提交至本地仓库
    • git commit [-m “${提交信息}”] :提交至本地仓库,-m是注释信息,可不写
  • 本地仓库同步至远程仓库
    • git push :同步至远程仓库
  • 从远程仓库下载至工作区
    • git clone #{url} :将远程仓库已有项目下载至工作区
  • 从远程仓库同步至工作区
    • git pull :同步至工作区
  • 查看提交记录
    • git log
19.2.4.git撤销命令
  • 在工作区中撤销
    • git checkout :产生的变化可以直接撤销。无法找回,慎重使用
  • 在暂存区中撤销
    • git reset :从暂存区中撤销至工作区
  • 在本地仓库中撤销
    • git reset –hard #{7位简略型版本号} :本地仓库回退至之前版本号的版本,如果已经提交过,则本地仓库版本落后于远程仓库版本
    • 如果回退之后,落后于远程仓库版本,则仍然需要git pull同步至最新版本进行开发
  • 远程仓库不可撤销
19.3.常见问题
19.3.1.提交冲突
  • 对于多个工作区操作同一工程,可能会出现,远程仓库已经更新,而其他工作区没有更新的问题,会引起提交冲突
  • 解决办法:
    1. 如果提交发生冲突,提交失败,应该首先git pull同步远程仓库
    2. 根据提示找到冲突的标记位置,修改代码,解决冲突
    3. 重新提交
19.3.2.意外删除
  • 开发中不小心删除了其他工作区提交的代码,需要回退至之前的本地仓库版本,找到删除的部分,
  • 通过git pull重新同步至本地仓库
  • 添加上删除的内容,重新提交即可
19.4.git分支
19.4.1.开启分支
  • 可以在gitee或github的仓库里,创建一个分支,分支中的内容与当前仓库中的内容完全一致,同时也可以使用git命令来创建分支,开启分支后,可以在当前分支继续开发,开发到某个阶段可以与主分支合并
    • git checkout -b #{分支名称}:创建并切换到新的分支
    • git branch -a :查看所有分支,并特别显示主分支
    • git push –set-upstream origin dev :第一次创建,需要建立本地分支和远程分支之间的联系
19.4.2.分支合并
  • 开发到某个阶段或者大版本更新,可以将分支合并到主分支上。需要切换到主分支上,在主分支上合并分支
    • git checkout #{分支名称}:手动切换到指定分支
    • git merge #{分支名称}:合并指定分支到主分支
19.5.bash命令
  • cd #{url} :进入指定路径
    • cd … :进入上一级目录
  • touch #{文件名} :创建文件
  • ls、ll :查看当前目录下的文件
  • vim编辑器
19.6.忽略配置
  • 对于一些class文件,没必要进行配置管理
    • 在工作区中,找到.gitignore文件,进入修改
      target/classes/User.class  //忽略指定文件
      
      target/		//直接忽略某个文件夹
      
      *.class		//忽略某种文件类型
      
      .gitignore 	//忽略自身,不建议这样做,最好要将其提交到远程仓库
      
  • 有些文件不应该管理,而在配置中已经管理了,此时进行即使添加忽略管理也是失效的
    • 解决办法:先将不想管理的文件删除,在本地仓库中,将其移动到某个地方,此时相当于产生了删除的变化,将其提交到远程仓库,然后再修改配置
19.7.在IDEA中使用git
  • 在IDEA中使用git,首先应将 .gitignore 文件中添加 .idea 忽略项
  • git可视化:
    • add:开发过程中,在修改的部分右键—选择git选项,选择add即可添加至暂存区,
    • commit:同样选择git选项,选择commit选项,在弹出的对话框中选择commit按钮commit即可添加至本地仓库,
    • push:同样commit操作后,点击下拉菜单,选择push,在新的对话框中点击push,即可提交至远程仓库
  • git控制台:
    • 修改控制台设置路径:File—settings—Terminal,右侧在Application settings的shell path选项中,选择git安装路径的git-cmd.exe文件,确定即可
    • 注:在这里,IDEA本来的配置是cmd.exe,即windows的cmd控制台。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/181048.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!