首页 > 其他分享 >Git

Git

时间:2023-04-28 16:33:49浏览次数:35  
标签:origin git -- 合并 Git 版本 分支

Git

  1. git是一个分布式的版本控制软件,版本控制最早期是文件的复制粘贴、下一个阶段是集中管理、现在是分布式管理。

  2. 集中管理是将文件存储到一个地方,优点是解决了共同开发,缺点也很明显就是如果存储的地方出现问题就无法使用了。

  3. 分布式管理就很好了在网络中的每个点都存储一遍,优点是哪个节点出现问题都不影响其他节点。

  4. 安装:去https://git-scm.com/下载后,点下一步即可。

1.基本使用

  1. 右键点击bash here,版本查看 git --version

  2. 进入要管理的文件夹打开Bash Here后,输入git init作用是初始化,初始化后需要查看一下文件夹中的文件使用git status

  3. 查看后你会发现文件是红色的,红色代表未在工作区,我们需要将其添加到缓存区使用git add "FileName"或全部添加git add .,文件修改后并不在管理范围之内,所以需要再次添加并生成新的版本。

  4. 我们第一次使用git去生成版本时会出现一个提示,说是要你填写Email and Name,填写这两个是为了让git记住你。

    git config --global user.email "[email protected]"
    git config --global user.name "Your Name"
  5. 添加完之后我们需要生成版本使用git commit -m "VersionName",生成版本后我们肯定要查看的所以我们使用git log查看。

  6. 版本生成后你就会发现,如果有一天需要将一个功能取消,你不可能一行一行去删,这里只能用到回滚了。

    git add "FileName"              # 添加到缓存区
    git commit "versionName"        # 添加到版本库
    git reset --soft "VersionNum"   # 退回到缓存区
    git reset head "FileName"       # 退回到工作区(exit)
    git check out "FileName"        # exit退回到start
    git reset --mix "VersionName"   # 版本库退回到工作区exit
    git reset --hard "VersionName"  # 版本库退回到工作区start(想退回到上一个版本,就查看历史版本后,使用这条命令)
    git reflog                      # 查看历史版本
  7. 你有没有想过版本库的存储方式是什么,如果我有两个功能要开发你需要找两个人开发,而版本库需要使用分支来存储,分支的好处在于两个人的开发并不会互相影响。有多个分支要合并时,如果两个分支修改同一行代码时,会出现提示需要手动删除不需要的合并部分。(合并时先转到主分支)

    git branch                      # 查看分支
    git branch "BranchName"         # 创建分支
    git checkout "BranchName"       # 切换分支
    git merge "BranchName"          # 合并分支
    git branch -d "BranchName"      # 删除分支
  8. 在公司我们开发需要至少创建两个分支,一个是正式分支、另一个是开发分支,只有开发分支稳定后再去合并到正式分支中。

2.远程仓库(GitHub)

  1. 远程仓库GitHub存储你写的代码前需要创建账户和仓库,创建后拿到仓库RUL后到自己的电脑上使用以下命令即可。

    git remote add "origin" "URL"   # 给仓库创建别名
    git push -u "origin" "master"   # 推送分支到仓库
    git clone "URL"                 # 克隆远程的仓库并帮你给仓库起别名为origin,创建别名只需要一次即可。
    git pull "origin" "dev"         # 更新本地代码
  2. git pull "origin" "dev"等于git fetch "origin" "dev"(是将github上的代码拉到版本库的)+git merge origin/dev(是将拉到版本库的代码放到工作区)。

  3. 在工作中代码需要合并的,这里我们在合并有三种应用场景。

    1. 在工作中版本太多后,给老板给时不可能交给多个版本,我们只能将版本合并起来交给老板。

      git rebase -i "VersionNum"  # 将该码以上的全部合并
      git rebase -i HEAD~3        # 合并当前版本下3个,版本可以随意。
      # 注意:
          修改前面为s,s代表将s代表的合并到pick版本上。
          版本合并时会出现描述,你需要写一下描述。
    2. 在两个分支便携时会出现,分支合并并不会直接合并只会让它新生产一个版本合并的,而你想合并成一条时可以如下操作。

      git checkout dev
      git rebase master
      git chekcout master
      git merge dev
      git log --graph --pretty-format:"%h %s" # 简化显示
      ​
    3. 在GitHub上的代码是最新的,而在你的电脑上的并不是,你需要拉下来但是拉下来会新创建一个版本,我们可以使用一下代码将其合并。

      git fetch "origin" "dev"
      git checkout "dev"
      git rebase "master"
      git rebase --continue
      # 注意:修改冲突带代码,后并添加到暂存区后继续执行下去。
  4. 我们在公司开发时,git的使用应该是一个主分支,一个开发分支,在开发分支下又有多个功能分支,功能分支完成开发后合并到开发分支,开发分支需要先合并到测试分支,测试完之后再合并到主分支即可。

3.其他

3.1 快速解决冲突

  1. 快速解决冲突我们需要使用的一个软件,“beyond compare”用来快速解决冲突代码。

  2. 我们需要在git中配置该文件后,才可以使用。

    git config --local merge.tool bc3               # 起名字为bc3
    git config --local mergetool.path "PATH"        # 指定软件路径
    git config --local mergetool.keepBackup false   # 解决冲突后并不保留,备份
  3. 剩下的就是使用了,用git mergetool启动beyond compare。

3.2 git配置文件

  1. git有三个配置文件,项目、所有项目和系统三种,使用不同的命令配置。

  2. 配置文件的位置。

    # 项目配置文件"project/.git/config"
        git config --local
    # 全局配置文件"~/.gitconfig"
        git config --global
    # 系统配置文件"/etc/.gitconfig"
        git config --system

3.3 GitHub免密登录

  1. URL中免密,是使用将用户名密码拼接在连接中并配置在,git配置文件中实现的。

    git remote add origin https://UserName:[email protected]/...
  2. SSH实现免密,使用公钥和私钥将其实现免密,是将公钥放到GitHub的settings中配置后即可使用。

    # 生成公钥和私钥(默认放在~/.ssh目录下的,id_rsa.pub公钥、id_rsa私钥)
    ssh-keygen
    git remote add origin [email protected]/...

3.4 git忽略文件

  1. git想要忽略文件就需要创建一个文件gitignore并在里面写如需要忽略的文件。(*.h:应用.h结尾文件、!a.h:不应用这个文件、files/:忽略该文件夹下的所有文件、a.py[a|b]:忽略a.pya和a.pyb的文件)。

 

标签:origin,git,--,合并,Git,版本,分支
From: https://www.cnblogs.com/InvincibleGrass/p/17362551.html

相关文章

  • idea 上传项目到gitee
    1、创建一个本地仓库2、选择上传项目作为仓库目录3、将项目添加到缓冲区选中上传项目-->鼠标右键-->Git-->Add https://blog.csdn.net/m0_67677436/article/details/124676742 ......
  • 【git基础问题】LFS upload missing objects
    前言 修改文件权限;还是不行;修改文件权限之后,使用gitpush就可以了;gitpush-uorigintda4dev#好像ok了gitlfspush--allorigintda4dev#notok   参考1. 完......
  • 【软件工具使用问题】gitlab中md文件如何显示换行
    前言 解决方法:在需要换行的文本后面,多加两个空格就可以。 参考1. GitHub中README.md如何换行_newnwee的博客-CSDN博客;完......
  • Docker中安装Gitlab-CE
    官方介绍地址:https://docs.gitlab.com/ee/install/docker.html点击查看脚本dockerrun-d\--hostname192.168.172.128\--privileged=true\-eGITLAB_OMNIBUS_CONFIG="external_url'http://192.168.172.128:3000';gitlab_rails['initial_root_pa......
  • github Mac m2 被重定向恢复
    当拉去镜像的时候之前设置了91fun代理查看git配置修改配置删除url一行open-e~/.gitconfig......
  • 《HelloGitHub》第 85 期
    兴趣是最好的老师,HelloGitHub让你对编程感兴趣!简介HelloGitHub分享GitHub上有趣、入门级的开源项目。https://github.com/521xueweihan/HelloGitHub这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言Python、Java、Go、C/C++、Swift.........
  • 记录一次git patch解析的问题
    因为工作需要对gitpatch内容进行解析,解析成文件及对应修改行、删除行的数据结构。gitpatch大概内容:点击查看代码commitmessage1commitmessage2diff--gita/file1.txtb/file1.txtindex1234567..abcdefg100644---a/file1.txt+++b/file1.txt@@-1,3+1,5@@l......
  • Tinker Board 2s配置Jekins、Git、Github WebHook、内网穿透
    用途说明目的充分利用小型开发板的算力,实现个人服务器适用系统、硬件debian10及更高版本(lsb_release-a或cat/etc/redhat-release、uname-a)文章所使用硬件:TinkerBoard2s操作速览基础配置篇开启SSH服务并设置开机自启动修改密码(可选)关闭图形化界面、禁用自动休眠......
  • Git
    Git——分布式版本控制系统简易的命令行入门教程:Git全局设置: gitconfig--globaluser.name"qinyue" gitconfig--globaluser.email"[email protected]"创建git仓库: mkdirtypora-image cdtypora-image gitinit touchREADME.md gitaddREADME.md......
  • 最新 Gitlab配置webhook
    Gitlab配置webhook避坑指南&常见环境问题排查思路与思考总结 前言在之前的CI/CD流程中,我在配置JenkinsJob的“构建触发器”时,采用的都是Gitlab的轮询策略,每10分钟轮询一次Gitlab代码仓库,若有新代码提交,则触发构建、执行代码扫描、运行自动化测试等一系列动作。此种......