Home Git团队开发
Post
Cancel

Git团队开发

前言

  • 苦命仔写教程

前置

Git介绍

Git是一款分布式版本控制系统,最初由Linus Torvalds(Linux操作系统的创始人)为Linux内核项目而开发。Git被广泛用于各种软件开发项目,以便更好地管理代码版本和协作。

Git的基本概念

  1. 仓库(Repository):Git版本控制的中心是一个仓库,它包含了项目的所有版本历史和元数据。
  2. 分支(Branch):分支是Git中用于隔离不同开发线的一种机制。每个分支都可以独立地开发,最后再合并到主分支上。
  3. 工作区(Workspace):工作区是开发者在本地机器上存放待处理的文件的地方。
  4. 暂存区(Staging Area):暂存区是用于存放已经修改但还未提交的文件的地方。开发者可以使用git add命令将文件添加到暂存区。

常用操作

  • 克隆(clone):克隆远程仓库的代码到本地
  • 下拉(pull):从远程仓库拉取最新的记录(代码)
  • 合并(merge):合并是将两个分支的代码合并到一起的操作。在合并时,Git会尝试自动合并代码,如果存在冲突,则需要手动解决
  • 提交(commit):每次对代码进行修改并保存后,都可以创建一个提交。提交包含了修改的内容、提交者的信息以及提交时间戳
  • 上推(push):将本地的更新推送到远程仓库

基本工作流程

  1. 克隆一个远程仓库到本地
  2. 工作区修改代码
  3. 提交本次修改到暂存区git add
  4. 暂存区域的文件保存快照,创建一个新的提交(记得添加提交信息)(git commit
  5. 拉取最新远程代码(在最终上推前,务必先拉取最新代码,并解决可能存在的冲突,合并主分支后,再执行推送操作)(git pull
  6. 推送到远程服务器(git push

案例

克隆远程仓库到本地

  1. 获取仓库url (HTTPS、SSH等都可以)

  2. 克隆到本地

    • Git Bash版

      在要存放的路径下,右键,Open Git Bash Here,键入命令git clone 仓库url

    • Github Desktop版

      File -> Clone repository -> 可以直接搜索仓库或者使用url

    • IDE版

      Get from VCS,同样可以搜索仓库或者使用url

工作区工作

  • 代码颜色表示不同的Git状态

    • 红色未加入版本控制
    • 绿色:已加入版本控制,暂未提交
    • 蓝色:已加入版本控制,已提交,有改动
    • 白色:已加入版本控制,已提交,无改动
    • 灰色:版本控制已忽略文件
    • 黄色:被Git忽略,不跟踪
  • 其他常用操作

    • 通过Git查看日志,通过日志可以查看代码修改,以及对比代码(show diff)

版本更新

  1. 创建提交

    对应Git命令为:git addgit commit,Github Desktop和IDEA将这两个命令合并为一个操作

    • Git Bash版

      在对应的路径下,打开Git Bash,使用git add命令,添加修改的代码文件;使用git commit命令,添加提交信息,需要用-m参数,如git commit -m "update"

    • Github Desktop版

      在Changes处勾选修改的文件,添加提交信息

    • IDE版

      同上,勾选待提交的文件,添加提交信息后commit

  2. 拉取更新

    • 必要性

      个人项目就无所谓拉不拉更新,反正就只有一个分支。但是团队开发是多个人在一个主分支上进行操作,有可能会出现代码冲突的情况,比如你下拉完最新的代码,然后开始工作,但是这时候有成员提交了新的代码,那么你工作区的代码就并不是最新的,当你工作完准备提交时,这时候就会产生冲突。因此每次上推前,都需要先拉取最新的代码,如果有冲突存在,还需要先合并冲突,再进行提交。另外,建议是当准备一次上推时,知会一下团队成员,让大家知道你准备要上推代码了,以免出现你刚解决完一个冲突准备上推时,又有成员上推新的更新,增加自己的合并的工作量

    • 操作

      • Git Bash版

        命令:git pull [分支(一般是origin)]

      • Github Desktop版

      • IDE版

  3. 上推远程仓库

    终于来到上推环节,这部分影响最大的应该是网络,如果推不上去,梯子开下全局试试,或者尝试不同的上推方法,IDE不行就用Github Desktop

    • Git Bash版

      命令:git push [分支(一般是master或main)]

    • Github Desktop版

    • IDE版

    • Python脚本,如果还是推不上去,这里提供一个脚本循环尝试

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      
      #!/usr/bin/env python
      # -*- coding: UTF-8 -*-
           
      __author__ = "Maylon"
           
      from git import Repo
      import os
           
      print("Start pushing...")
      print()
           
      cnt = 0
      dir_file = os.path.abspath('./')  # code的文件位置,默认将其存放在根目录下
      repo = Repo(dir_file)
           
      g = repo.git
           
      while True:
          cnt += 1
          try:
              g.push()
              print("Try " + str(cnt) + ": Successfully push!")
              break
          except Exception as e:
              print(e)
              print("Try " + str(cnt) + ": Push failed, retrying...")
              print()
              continue
           
      

撤销

注意事项

  • 不要提交非代码文件(如配置文件)
  • 先commit再pull(先pull的话会可能会直接覆盖自己的修改)
  • 提交时的提交信息应该是简要而清晰的
  • 推送前确保自己的修改是能运行的

写在最后

  • Git还有一些好用的功能比如:Git Stash,checkout等,这部分留待自学,不在此赘述
  • 临时写的博客,案例覆盖的不多,后续遇到再补充,欢迎添加评论

TODO

  1. 整理Git撤销操作

参考

Learn Git Branching-互动

Git备忘清单-速查表

一文读懂GIT所有操作-CSDN

图解 Git 工作原理,彻底说清楚!!!-知乎

This post is licensed under CC BY 4.0 by the author.