0


git | 常用配置与指令

文章目录

简要介绍

  • Git 是一个分布式版本控制系统,用于跟踪代码、文档或项目的历史变化,尤其在软件开发中广泛应用。
  • 它允许多个开发者在本地和远程仓库上协作,同时保持项目的完整历史和变更记录。
  • Git 最初是由 Linux 开发者 Linus 用了仅仅两周时间纯C语言编写而成。
  • Git 是是目前为止最好用的分布式版本控制系统。
  • github 用的就是 git 系统来管理它们的网站。注意,比如说GitHub、Gitee等,它们和 git 是两个不同的概念,前者是一个社区,后者是一个服务系统,GitHub 和 Gitee 支持 git 分布式系统。
  • 下面是git的流程图![![[博客/常用工具/Pasted image 20240905234735.png]]](https://i-blog.csdnimg.cn/direct/83d13c01f0fb439c8ba13c2bafdf7fb4.png)

开始使用

一、配置姓名和邮箱

git config --global user.name "head"
git config --global user.email "iamhead@163"

二、配置常用长指令使用别名

  1. 在用户目录中创建 .bashrc 文件,也可以在 gitbash 中执行 touch ~/.bashrc
  2. 在 .bashrc 中进行配置,参考如下
# 用于输出 git 提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'

# 用于输出当前目录所有文件及基本信息
alias ll='ls -al'
  1. 打开 GitBash,执行 ~/.bashrc

三、解决GitBash乱码问题

  1. 打开 GitBash 执行下面命令
git config --global core.quotepath false
  1. ${git_home}/etc/bash.bashrc 文件最后加入两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

四、基础操作指令

  • 修改已有文件和新创建一个文件,会让代码进入工作区
  • 新创建的文件属于未跟踪(untracked),修改已有的文件属于(unstaged)
  • 将工作区的代码提交到暂存区:git add
  • 将所有代码提交到暂存区:git add .- 暂存区是提交到仓库之前的缓存区
  • 将暂存区的代码提交到仓库:git commit- 每一次 commit,就是一次提交记录
  • 将暂存区的代码在有提交信息的情况下提交到仓库 - 添加信息:git commit -m ‘this is commit’
  • 查看当前仓库的修改状态:git status
  • 版本回退:git reset
  • 回退到指定版本:git reset -hard [commitID]- 其中 commitID 为要回退的版本ID- ID 使用 git log 或者 git-log 查看- 其中 git-log 为自定义的指令
  • 查看已删除的提交记录:git reflog

五、分支与合并

  • 有多个分支之后,我们在工作区只能对一个分支进行修改

分支使用原则

  • master:生产分支,线上分支
  • develop:开发分支,从 master 创建的分支
  • feature:分支,从 develop 创建的分支
  • hotfix:分支,从 master 创建的分支,一般用于修复 bug

git branch

  • 查看分支

git branch dev

  • 新建一个叫“dev”的分支

git checkout dev / git switch dev

  • 切换分支
  • 创建并切换分支:git checkout -b BranchName / git switch -c BranchName 注:
  1. git checkout 和 git switch 都是 Git 中用于切换分支或恢复文件的命令,但 switch 是 Git 从2.23版本以后引入的,checkout 是 Git 早期的命令。
  2. switch 命令只用于分支操作,而 checkout 命令除了可以切换分支外,还可以用于恢复文件。
  3. switch 命令在切换分支时更加安全。它会检查当前分支是否被修改并拒绝切换,以避免潜在的代码丢失。而 checkout 命令则没有这种检查机制,所以在切换分支时需要特别小心,以免不小心覆盖了未提交的更改。

git merge

  • 合并分支
  • 合并流程(重点):以将 dev 合并到 master 为例 - 切换到 master 分支 - git checkout master / git switch master- (从远程仓库)更新 master 分支 - git pull origin master- 合并 develop 分支到 master - git merge develop- 解决冲突 - 解决完冲突后:- git add <文件名>- git commit -m ‘解决xxx冲突’- 推送合并后的 master 到远程仓库 - git push origin master- 删除 develop 分支(可选) - git branch -d develop
  • 合并后的继续开发: - 切换到 develop - git checkout develop / git switch develop- 将 master 上的代码合并到 develop - git merge master- 解决可能的冲突后,继续开发

git branch [-d]/[-D] BranchName

  • 删除分支
  • 不能删除当前分支,只能删除其他分支
  • 如果为 [-d],则删除时需要做各种检查
  • 如果为 [-D],则强制删除,不做检查

合并冲突

  • 当两个分支上对文件的修改可能会存在冲突,如同时修改了同一个文件的同一行,这时需要手动解决冲突,解决方案如下
  1. 处理文件冲突的地方
  2. 将解决完冲突的文件加入暂存区(git add)
  3. 提交到仓库(git commit)

六、远程仓库

配置SSH公钥

  • 生成SSH公钥 - ssh-keygen -t rsa- 一路回车(选择默认情况)
  • 获取密钥 - cat ~/.ssh/id_rsa.pub
  • 在GitHub/Gitee的SHH密钥中进行配置
  • 验证是否设置成功 - ssh -T git@github.com / ssh -T git@gitee.com
  • 设置成功后,可不用账号密码clone和push代码
  • 注意克隆时要用 ssh 的 url,而非 https!

配置远程仓库

  • (在要配置的仓库目录下)git remote add origin [仓库的SSH地址]
  • origin 为远端仓库的名字,命名随意
  • 查看远程仓库 - git remote
  • 推送到远程仓库: - 将本地的main分支推送到名为origin的仓库的master分支- 如果加上 -f,则为强制覆盖- –set-upstream:推送到远端的同时并且建立起和远端分支的关联关系- git push [-f] [–set-upstream] origin main:master

克隆

  • 克隆代码到本地路径 - git clone <(远程)仓库路径> [本地存放路径]- 克隆(对于一个项目)基本只用一次,之后都是抓取和拉取来更新代码

抓取和拉取

  • 抓取 - git fetch [远程仓库名字] [(要抓取的)远程分支]- 抓取指令仅仅将远程仓库里的修改抓取到本地,不会进行合并- 如果不指定远程仓库名字和远程分支名,则默认抓取所有分支
  • 拉取 - git pull [远程仓库名字] [(要抓取的)远程分支]- 拉取指令将远程仓库的修改拉取到本地,并进行合并,等于 fetch + merge- 如果不指定远程仓库名字和远程分支名,则默认抓取所有并更新当前分支

GitHub常见问题

push代码失败

  • 取消git的代理
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global http.proxy http://127.0.0.1:xxxx
xxxx为系统代理端口号,如图则为3372
标签: git java idea

本文转载自: https://blog.csdn.net/2401_82882583/article/details/141947499
版权归原作者 饼卷馒头 所有, 如有侵权,请联系我们删除。

“git | 常用配置与指令”的评论:

还没有评论