Git工具的简单使用

写在最前

Git命令参考:Git命令大全

1. 为什么使用Git工具

  • 对代码版本迭代进行管理,具体请自行百度
  • Git和SVN的区别?具体百度
  • 在这里插入图片描述

参考资料
【狂神说Java】Git最新教程通俗易懂

2. Git的安装和卸载

2.1 Git的安装

参考资料
Git 详细安装教程(详解 Git 安装过程的每一个步骤)
其实选对路径勾选好环境,直接都是下一步即可。

    1. 安装完成出现三个图标,Git bash、Git cmd和Git gui
    1. Git Bash:unix与linux风格的命令行,使用最多,推荐最多
    1. Git CMD:windows风格的命令行
    1. Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

2.2 Git的卸载

    1. 在控制面板uninstall git
    1. 清理环境变量
      在这里插入图片描述

3. Git配置

Git的配置全部以文件形式保存在本机上
环境变量主要是为了全局使用Git

    1. 查看Git的配置:git config -l
R7000@DESKTOP-12SFREG MINGW64 ~/Desktop
$ git config -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=D:/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master

    1. 查看Git的系统配置:git config --system --list
R7000@DESKTOP-12SFREG MINGW64 ~/Desktop
$ git config --system --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=D:/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
    1. 查看Git的用户信息:git config --global --list 主要显示用户的邮箱和用户名
      如果出现fatal: unable to read config file 'C:/Users/R7000/.gitconfig': No such file or directory原因是没有配置用户名和邮箱。

配置用户名:git config --global user.name <用户名>
配置邮箱信息:git config --global user.email <邮箱信息>

4. Git的核心工作原理

参考资料
Git:工作原理(核心)
git的工作原理

4.1 关键点-四个工作区

    1. Workspace:工作区,也就是我们写代码的文件夹,平时存放代码的地方。
    1. Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即提交到文件列表信息
    1. Repository:仓库区(或**本地仓库,本地仓库的作用就是追踪你代码文件的改动**),是安全存放数据的位置,这里有你提交到所有版本的数据,实际本身还是本地的文件,其中HEAD指向最新放入仓库的版本。
    1. Remote:远程仓库,托管代码的服务器,也就是Git联网的远端仓库。

在这里插入图片描述

4.2 Git工作流程和基本命令

在这里插入图片描述

    1. 拉取或者初始化Git项目;拉取Git项目:git clone ......git;将某个工作区初始化为Git项目git init
    1. 在工作目录中添加、修改文件;对应状态为已修改(modified)
    1. 将需要进行版本管理的文件放入暂存区域;git add <文件名>或者git add .对应状态为已暂存(staged)
    1. 将暂存区域的文件提交到git仓库;git commit,和git commit -m "文件名" 对应状态为已提交(committed)
    1. 因此,Git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
    1. 查看Git文件状态:git status 或者单个文件状态git status <文件名>

tips:由于直接Git拉取下来的项目在master分支/main分支,而开发过程中可能用的不是这个分支,需要采用Git克隆某个分支:git clone -b 分支名 ....git

tips:如果存在不想进行git操作的文件和文件夹,则在工作区中新建文件.gitgnore,参考内容Git 开发必备 .gitignore 详解!【建议收藏】

5. Git项目上载仓库的基本操作

5.1 Git仓库创建

    1. 使用码云Gitee:参考码云注册和使用
    1. 使用Github:参考百度
    1. 使用Gitlab:参考百度
    1. 使用Azure DevOps:见下
  • 4.1 注册Azure DevOps
    在这里插入图片描述

  • 4.2 新建项目

在这里插入图片描述

在这里插入图片描述

  • 4.3 新建Repo创建Git代码仓库
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/41ce4868137b4d20a85d4641b5bbc8b6.png在这里插入图片描述

  • 4.4 申请访问的token,这一步对应生成SSH公钥的意思

在这里插入图片描述

  • 4.5 在repo中对项目进行操作:包括创建分支,上传文件等,最后项目有main、develop(基于main)、userA(基于develop)和userB(基于develop)四个分支,以及数个文件(在userA分支上)
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 4.6 点击clone复制项目的git连接

在这里插入图片描述在这里插入图片描述

5.1 拉取Git项目

    1. 在本地磁盘新建文件夹gittest,右键打开git bash
      在这里插入图片描述
    1. 克隆userA的分支,由于azure develop的原因可能需要输入token的密码:git clone -b userA ... git

在这里插入图片描述

5.3 本地新建文件上传到Git项目仓库

  • 新建文件采用linux命令:touch test_a.txt
  • 添加到缓存区:git add test_a.txt
  • 添加到本地仓库:git commit -m test_a.txt
  • 上传到Git代码仓库:git push
R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ touch test_a.txt

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ ls
README.md    dictionary.py    list.py             test_a.txt
csv_test.py  if_elif_else.py  matplotlib_test.py

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ git status
On branch userA
Your branch is up to date with 'origin/userA'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test_a.txt

nothing added to commit but untracked files present (use "git add" to track)

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ git add test_a.txt

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ git commit -m test_a.txt
[userA 90a2d9c] test_a.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test_a.txt

R7000@DESKTOP-30AFPHP MINGW64 /d/Workspace/Py/gitest/GitTestProject (userA)
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 266 bytes | 266.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Analyzing objects... (3/3) (34 ms)
remote: Storing packfile... done (109 ms)
remote: Storing index... done (53 ms)
To https://dev.azure.com/601098009/GitTestProject/_git/GitTestProject
   eea77e1..90a2d9c  userA -> userA

在这里插入图片描述

6. Git分支和远程操作

6.1 基本命令

  • 列出所有本地分支:git branch
  • 列出所有远程分支:git branch -r
  • 列出所有本地分支和远程分支: git branch -a
  • 新建一个分支,但依然停留在当前分支: git branch [branch-name]
  • 新建一个分支,并切换到该分支: git checkout -b [branch]
  • 新建一个分支,指向指定commit: git branch [branch] [commit]
  • 新建一个分支,与指定的远程分支建立追踪关系: git branch --track [branch] [remote-branch]
  • 切换到指定分支,并更新工作区: git checkout [branch-name]
  • 切换到上一个分支: git checkout -
  • 建立追踪关系,在现有分支与指定的远程分支之间: git branch --set-upstream [branch] [remote-branch]
  • 合并指定分支到当前分支: git merge [branch]
  • 选择一个commit,合并进当前分支: git cherry-pick [commit]
  • 删除分支: git branch -d [branch-name]
  • 删除远程分支: git push origin --delete [branch-name] git branch -dr [remote/branch]
  • 下载远程仓库的所有变动: git fetch [remote]
  • 显示所有远程仓库: git remote -v
  • 显示某个远程仓库的信息: git remote show [remote]
  • 增加一个新的远程仓库,并命名: git remote add [shortname] [url]
  • 取回远程仓库的变化,并与本地分支合并: git pull [remote] [branch]
  • 上传本地指定分支到远程仓库: git push [remote] [branch]
  • 强行推送当前分支到远程仓库,即使有冲突: git push [remote] --force
  • 推送所有分支到远程仓库: git push [remote] --all
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值