Git使用记录

发布于:2024-05-09 ⋅ 阅读:(24) ⋅ 点赞:(0)


前言

Git是流行的分布式版本控制系统
官网:https://git-scm.com/downloads


Git的四个工作区域
Git本地有四个工作区域:Working Directory、Stage/Index、Repository或Git Directory、Remote Directory。文件在这四个区域之间的转换关系如下:
在这里插入图片描述
Workspace: 工作区

Index / Stage: 暂存区

Repository: 仓库区(或版本库),其中HEAD指向最新放入仓库的版本

Remote: 远程仓库,托管代码的服务器

基础配置

# 设置用户签名
> git config --global user.name 用户名
> git config --global user.email 邮箱
# 查看当前设置的签名
> cat ~/.gitconfig

关于用户签名的作用:
在Git中,用户签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。

git config --global user.name 设置的用户名与GitHub用户名没有任何关系

当执行 git push 时,你实际上是将本地的提交发送到远程仓库(如 GitLab)。这些提交包含了提交者的身份信息(本地git config --global user.name所设置的用户)

但是git config --global user.email所设置的邮箱与远程仓库用户的邮箱一致,部分远程仓库可以实现自动关联本地用户和远程仓库用户。

存在多个不同地址的远程仓库时,需要配置多份ssh秘钥,详见:https://blog.csdn.net/xys206006/article/details/129318366

仓库基础操作

#初始化本地仓库
> git init
#查看本地仓库状态
> git status
#添加工作区的文件到暂存区
#添加单个文件
> git add test.txt
#添加所有文件
> git add --all
#删除暂存区的内容
> git rm -cached test.txt
#提交仓库
#提交单个文件
> git commit -m "日志信息" test.txt
#提交所有文件
> git commit -m "日志信息"
#查看版本信息
> git reflog
#查看版本详细信息
> git log
#切换版本
> git reset --hard 版本号

仓库分支操作

#查看分支
> git branch -v
#创建分支
> git branch 分支名
#切换分支
> git checkout 分支名
#创建并切换分支
> git checkout -b 分支名
#合并分支
#将分支内容合并到当前分支
> git merge 分支名

合并分支时,存在冲突解决的问题

编辑存在冲突的文件,删除特殊符号,决定要使用的内容。
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> 分支名

远程仓库操作

常用远程仓库

  • github
  • gitee
  • gitlab

常用命令:

#查看当前远程仓库的地址和别名
> git remote -v
#远程仓库的默认别名是origin,需要换别名
> git remote add 别名 远程地址
#远程仓库的url变了,需要更新别名的url配置
> git remote set-url 别名 新的仓库url
#将本地当前分支的内容推送到远程仓库
#第一次推送,需要设置本地分支与远程分支的关联
#-u 或 --set-upstream 选项用于设置本地分支与远程分支的关联
> git push -u 别名 推送的远程仓库分支
#例:将本地当前分支的内容 推送到别名为origin的远程仓库的dev分支
> git push -u origin dev
#非第一次推送,不用设置-u选项
> git push 别名 推送的远程仓库分支
#推送代码时 --force 或 --force-with-lease选项会强制覆盖远程分支的内容
#--force强制推送,可能会导致远程分支上的更改丢失
#--force-with-lease更安全的方式,只有在本地分支包含远程分支的末端时才允许强制推送
> git push origin master --force
#克隆远程仓库到本地
> git clone 远程地址
#拉取远程仓库对应分支的最新内容 并与本地分支合并
> git pull 别名 远程仓库分支名

远程仓库别名的作用:

  • 通过给远程仓库设置一个别名,可以更容易地识别和操作该远程仓库。
  • 简化操作命令。
  • 如果远程仓库的 URL 发生变化,只需要更新对应的别名配置,而不需要修改所有使用该远程仓库的命令。

网站公告

今日签到

点亮在社区的每一天
去签到