关于Git

243 阅读4分钟

一、常用的版本控制系统

  • CVS/SVN:集中式
  • GIT:分布式

二、git版本控制系统(Linx)

1,记录历史版本信息,记录每一次修改信息;

2,方便团队相互之间协作开发;

三、常用命令

创建本地仓库
git init
查看当前仓库的状态
git status
查看分支
git branch -l	// 查看本地分支

git branch -r	// 查看远程分支

git branch -a	// 查看全部分支
创建分支
git branch dev	// 创建名为dev的分支
切换分支
git checkout dev	// 切换到名为dev的分支
git checkout -b dev	// 创建dev分支并切换到该分支
合并分支
// 想将dev分支合并到master分支,分两步操作

// 第一步先切换到master分支
git checkout master

// 第二步合并到master上
git  merge dev
创建远程仓库的分支
// 创建远程仓库的分支,分两步操作

// 第一步在本地创建dev分支
git branch dev

// 第二步推送到远程仓库中
git push origin dev
推送到远程仓库指定分支

使用以下命令将本地分支推送到远程仓库的指定分支:

方法一:使用git push命令

git push <远程仓库名称或URL> <本地分支名称>:<远程分支名称>

其中,<远程仓库名称或URL>指代远程仓库的名称或URL地址,<本地分支名称>指代要推送的本地分支的名称,<远程分支名称>指代要将本地分支推送到的远程分支的名称。

例如,要将本地分支dev推送到远程仓库originmain分支,可使用以下命令:

git push origin dev:main
回滚到某个版本

在Git中回滚到某个特定版本,可以通过多种方法实现。以下是详细的步骤和注意事项:

  1. 确定要回滚到的目标版本

首先,你需要确定要回滚到的目标版本。这通常是通过commit hash(提交哈希值)来指定的。你可以使用git log命令来查看项目的提交历史,从而找到目标版本的commit hash

bashCopy Code
git log
  1. 使用git reset命令进行版本回滚

git reset命令可以将当前分支的HEAD指针指向指定的提交,从而回退代码到指定版本。

  • 查看提交历史‌:使用git log命令找到目标版本的commit hash
  • 执行回退操作‌:
bashCopy Code
git reset --hard <commit_hash>

这里,--hard参数会将HEAD指针、暂存区和工作区都回退到指定提交。这意味着所有未提交的更改都会丢失,因此请谨慎使用。

  1. 验证回滚是否成功,并检查项目状态

使用git log命令确认当前版本是否已回退到指定版本。同时,检查项目的工作区和暂存区,确保它们也回到了目标版本的状态。

bashCopy Code
git log
  1. (可选)将回滚后的更改推送到远程仓库

如果你已经将更改推送到远程仓库,并且希望远程仓库也回退到该版本,可以使用git push -f命令强制推送。但请注意,强制推送会覆盖远程仓库的历史记录,因此在使用前务必与团队成员沟通。

bashCopy Code
git push -f origin <branch_name>
一般的工作流

从工作区提交到暂存区

git add .

从暂存区提交到历史区

git commit -m "添加订单页面"

从远程仓库master主分支拉取最新代码

git pull origin master

提交代码到远程仓库master主分支

git push origin master

四、git查看、修改用户信息(GitHub)

1、查看用户名和邮箱

git config user.name
git config user.email

2、修改用户名和邮箱地址

git config --global user.name "xxx"
git config --global user.email "xxx"

3、关于配置SSH Keys

1.打开本地git bash,使用如下命令生成ssh公钥和私钥对
ssh-keygen -t rsa -C 'xxx@xxx.com'

2.然后打开~/.ssh/id_rsa.pub文件(~表示用户目录,比如我的windows就是C:\Users\Administrator),复制其中的内容

3.打开gitlab,找到Profile Settings-->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮