Git 基础知识

基础命令

一. git配置

1. 基于Https连接

git config --global user.name "<name>" 配置用于https连接远程仓库的用户名(全局)
git config --global user.email "<email>" 配置用于https连接远程仓库的邮箱(全局)
git config --global --list 查看全局配置

2. 基于SSH连接

ssh-keygen -t rsa -C "<email>" 生成SSH Key,并将公钥配置到远程仓库

二. 基础工作流

git clone <url/ssh> 克隆代码到本地
git init 初始化本地目录为仓库
git remote add <alias> <url/ssh> 将本地仓库与远程仓库进行关联,其中alias相当于时为当前指定的远程仓库设置了别名,通常我们会将别名设置为 origin
git status 查看文件状态
git add <file> 将工作区指定的文件或目录添加到暂存区
git add . 将工作区所有文件都添加到暂存区
git commit -m "<comments>" 将暂存区所有文件添加到本地仓库并添加comments
git log --grep="<comment>" 检索包含指定描述信息的日志信息
git log --graph 查看分支轨迹

git log 查看提交记录(此处的提交是指提交到本地仓库)
git log --since="<time>" 检索指定时间之后的日志信息,时间格式为:2023-11-29 00:00:00
git log --author="<author>" 检索作者为指定作者的日志信息

git diff 比较当前文件和暂存区之间的差异
git diff --staged 比较暂存区和本地仓库之间的差异

git push <alias> <branch> 将本地仓库 指定分支推送到远程仓库对应分支
git pull <alias> <branch> 拉取远程仓库最新代码到本地

三. 特殊工作流

git pull --allow-unrelated-histories origin <branch> 本地初始化的仓库关联到已经有内容的远程仓库并期望进行第一次拉取远程仓库的方式,此时的分支通常为master 或者 main
git checkout <file> 仅撤销对文件的修改
git reset HEAD <file> 仅撤销暂存文件
git rm -f <file> 彻底删除本地版本库中文件,同时删除原文件
git rm —cached <文件> 将文件从本地版本库中删除,但不删除原文件

四. 分支管理

git branch 列出本地所有分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
git branch -d <branch> 删除指定分支
git branch <branch> 基于当前所在的分支创建新分支
git checkout <branch> 切换到指定分支
git checkout -b <branch> 基于当前所在的分支创建新分支并切换到新分支
git merge <other branch> <current branch> 将指定的其他分支合并到当前分支
git rebase <other branch> 变基,将其他分支的提交加入到当前正在操作的分支

注意事项
合理使用rebase,假设当前分支是公共分支时不要随意使用rebase。因为rebase会改变log,这会导致相同分支在不同成员之间有不同的log,当提交到远程仓库时会导致识别失败而无法提交。但假设当前分支的使用者只有自己时建议使用rebase,这样会使合并内容更干净。

1. 冲突解决可参考流程

使用 merge 命令合并造成冲突时:

解决冲突并重新提交到本地仓库(add+commit)
再次使用 merge

使用 rebase 命令合并造成冲突时

解决冲突并重新提交到本地仓库(add+commit)
执行 git rebase --continue

.gitignore

.gitignore 文件用于指定 git 忽略的文件或目录

只需要在 .gitignore 内加入期望忽略的文件即可,例如忽略 demo.txt 和 demo目录

demo.txt
/demo

利用SSH关联多个远程仓库

我们可以利用不同的 alias 为同一本地仓库关联不同远程仓库,从而实现多远程仓库的备份。
例如我们期望本地仓库同时与 GitHub 和 GitLab 设置关联

注意事项
首先需要将公钥配置到GitHub 和 GitLab账号中

在真正关联之前我们需要对 ~/ssh/config 文件进行配置,我们需要为GitHub 和 GitLab分别创建Host条目,并且指向同一个ssh key

Host wangyun-github
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/wangyun

Host wangyun-gitlab
    HostName gitlab.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/wangyun

接下来我们只需要回到本地仓库目录下执行以下命令即可
git remote add github <ssh> 实现与GitHub关联
git remote add gitlab <ssh> 实现与GitLab关联

注意事项
其中 github 和 gitlab 只是一个别名,可以命名为任何字符串内容,避免重名即可
ssh 需要将HostName替换为Host条目
eg:git@github.com:WY-74/HelloWorld.git 需要变为 git@wangyun-github:WY-74/HelloWorld.git

此时我们可以在我们项目跟目录中的 .git/config 中看到两个 remote 配置,分别为 [remote "github"][remote "gitlab"] 这样就证明配置成功。

当我们希望从GitHub中拉取代码时执行 git pull github <branch> 即可,或者通过 git pull gitlab <branch> 从GitLab中拉取代码
推送代码操作类似。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值