Python侧开28期-偕行-学习笔记-Git代码管理

Git代码管理

1、相关概念

  • 文件状态
    • 未跟踪(Untracked)
    • 未修改(Unmodified)
    • 已修改(Modified)
    • 暂存区(Staged)
  • 三个工作区域
    • 工作区(Working Directory)
    • 暂存区(Staging Area)
    • 仓库区(Repository)
  • 工作树(Worktree)

2、git工作流程

3、git命令

(1)Git 同步命令

A、克隆远程仓库: git clone <url>

  • 提示:clone成功就已经初始化了,这是在远程仓库已有项目情况下的初始化;

  • HTTPS连接:使用给定 URL 即可 clone,在 push 时验证用户名和密码。

    • 配置全局帐号:
      • 配置用户名:git config --global user.name "your name"
      • 配置邮箱:git config --global user.email "your_email@youremail.com"
    • 验证配置结果:git config --global --list
      image
  • SSH连接:需要提前添加 SSH Key,在 push 时不需要输入用户名,配置 SSH 时设置了密码才需要输入密码。

    • 1、生成 SSH Key:ssh-keygen -t rsa -C "your_email@youremail.com"
    • 2、连敲三次回车键。
    • 3、到对应目录下找生成的公钥和密钥。
    • 4、将公钥内容配置到远程仓库即可使用SSH链接进行clone;
      image
      image

B、初始化仓库

  • 在已存在的目录中初始化仓库:git init
    • 提示:这是远程仓库没有项目的情况下的初始化,也就是本地文件没有被git管理,首次使用git管理时使用;
  • 关联远程仓库:git remote add origin <url>
    • 提示:本地有一个同项目名的空项目没有代码,要想将本地空仓库和远程仓库进行连接时使用,因为本地参考是空的,所以连接之后需要从远程仓库拉取代码到本地;此时(首次)拉取代码需要使用命令:git pull --allow-unrelated-histories origin master
      image

C、拉取远程仓库:git pull

(2)Git 修改命令

  • 跟踪新文件: git add <file>/<directory>
  • 提交更新。
    • 提交到本地仓库: git commit -m "comments"
    • 已修改文件跳过使用暂存区域: git commit -a -m "comments"
  • 推送到远程仓库:git push
    • 首次推送需要使用命令:git push --set-upstream origin master

(3)Git 常用调试命令

  • 检查当前文件状态:git status
  • 查看已暂存和未暂存的修改:
    • 比较当前文件和暂存区域快照之间的差异: git diff
    • 查看已暂存的将要添加到下次提交里的内容:git diff --staged
  • 撤销操作:
    • 撤销对文件的修改:git checkout <file>
    • 取消暂存:git reset HEAD <file>
  • 移除文件。
    • 删除本地文件: git rm -f <file>;不影响远程仓库,除非删除之后重新提交到远程仓库;
    • 移出暂存区: git rm --cached <file>
  • 忽略文件,有些文件无需纳入Git管理,比如日志文件或者编译过程中创建的临时文件,那就将这些文件放入到“.gitignore”文件j夹中;

4、git日志分析与检索

  • git日志查看:git log
  • 图形化显示日志:git log --graph
  • 筛选时间:git log --since='2023-02-02 00:00:00'
  • 筛选作者 git log --author='git对应的账号'
  • 筛选描述: git log --grep='commit内容'

5、分支管理

  • 概念:每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支;
  • 新建分支:
    • 新建分支,但仍然停留在当前分支:git branch 分支名
    • 新建分支并直接切换至该分支: git checkout -b 分支名
  • 查看分支:
    • 列出所有本地分支: git branch
    • 列出所有远程分支: git branch -r;–remote;
    • 列出所有本地与远程分支:git branch -a;–all;
  • 切换分支:
    • 切换到指定分支: git checkout 分支名
  • 删除分支:
  • 删除指定分支: git branch -d 分支名;–delete;

6、git合并与冲突

  • 合并分支:

  • 解决冲突:

    • IDE 中解决冲突:选择要保留的内容点击 Accept,保存代码,再次提交,之后进行合并。
    • 文件中解决冲突:保留需要的内容,删除其余内容,去掉分割线,保存代码,再次提交,之后进行合并。
  • 冲突解决流程:

    1. 在本地当前分支上,修改冲突内容。
    2. 执行 git add . 添加到暂存区。
    3. 执行 git commit -m '提交说明' 提交到本地仓库,完成合并。
    4. 执行 git push 提交到远程仓库。