【基础工具】Git命令集

Last updated on May 25, 2024 pm

Git 是一个版本控制系统,是任何软件开发项目中的主要内容。通常有两个主要用途:代码备份和代码版本控制。使用Git可以逐步处理代码,在需要回滚到备份副本的过程中保存每一步的进度。

Git与GitHub

Git的安装与配置

安装Git

直接上官网下载安装

https://link.zhihu.com/?target=https%3A//git-scm.com/download

https://git-scm.com/

或者MAC使用brew对git进行安装

1
brew install git

查看Git中的配置

1
2
3
git config --list
git config --global user.email test@163.com
git config --global user.name test

检查是否安装成功

1
git version

密钥连接

生成本地的ssh密钥连接到远端的git仓库

https://blog.csdn.net/weixin_42310154/article/details/118340458

Git的基本控制

初始化Git仓库

当完成上述的配置之后,就能开始初始化Git仓库,进入需要创建工作区workspace的文件夹输出git初始化的操作

1
2
cd workspace
git init

创建一个名为 .git 的新子目录(该目录为隐藏的),其中包含所有必需的存储库文件(Git 存储库框架);注意区分工作区暂存区,在没有add之前我们都是在工作区

【Vscode】考虑Git graph插件来可视化git分支目录的全貌

  • 在Github端新建仓库

    根据需要可以设置为公有的或者是私有的,最好不要设置README.md,因为初始化的国过程可能会出现冲突,设置也没关系

  • 本地的Git和远端github的连接

    获取本地的SSH公钥匙,打开终端并输入

    1
    ssh-keygen -t rsa -C "youremail@example.com"
    产生公钥的位置

    进入.ssh中复制id_rsa.pub中的内容,并在Github中的如下位置复制改内容添加SSH🔗

    SSH链接

    完成连接之后再配置git的相关内容

    1
    2
    git config --global user.email test@163.com
    git config --global user.name test
  • 本地工作区的设置

    首先进行初始化设置,使当前文件夹能够使用git

    1
    git init

    如果一开始没有设置README.md文件那么执行

    1
    2
    3
    4
    5
    git add README.md
    git commit -m "first commit"
    git branch -M main
    git remote add origin git@github.com.....git
    git push -u origin master

    以上这些步骤,就能将本地的git和远端的仓库进行关联

  • 本地和远端关联失败
    推送出现错误

    当然会出现本地和远端关联失败的情况,产生的原因可能如下:

    1. 在默认情况下,git push时一般会上传到origin下的master分支上,当repositorybranch过多,又没有设置关联时,git就会产生疑问

      通过以下命令查看远端本地的分支,并选择合适的

      1
      2
      git branch //本地
      git branch -a //远端
      远端和本地的不同分支
    2. 如果本地初始化的内容和远端的内容不一样,那么无法判断本地和远端的内容差异,因此需要选择如下之一

    1
    git reset --hard origin/master

    直接将远端的内容覆盖到本地

    1
    git push -f -u origin master

    强行将本地的内容覆盖到远端,那么就能形成统一,从而完成链接。

添加文件和备注

1
2
git add . 
git add <file>

执行上述命令之后将会将当前的file或者是工作区中的所有文件都上传到暂存区

1
2
3
git commit -m"【test】XXX更改信息提示"
#如果多次提交想覆盖到同一个提交的备注上执行下面
git commit --amend

上述的命令是将本次的提交添加描述,分布式协作的时候能看清

状态与日志

查看默认配置

1
git config --list

查看当前所在的分支位置信息

1
git status

查看当前分支下的更改日志

1
git log

推送与拉取

将本地暂存区中的更改内容推送到远端

1
2
git push
git push -f #强行推出

将远端所在的分支内容拉到本地

1
git pull

更新所在分支的最新内容

1
git fetch --all 

复制分支

获取git连接git@ XXX.git之后执行:

1
git clone git@ XXX.git

如果觉得git的内容太大,可以选择内部的分支进行下载

1
git clone -b feature/xxx git@ XXX.git

feature/xxx为具体的分支内容

分支操作

查看分支

1
2
git branch -a #查看所有的分支
git branch -r #查看远端的分支

切换不同的分支

1
git checkout [branch] #切换到分支

创建新的分支

1
git branch [branch] #创建新的分支

创建新的分支并切换到上面

1
git checkout -b [branch] #创建并切换新的分支

合并分支

  • 现在的任务是将b分支完全合并进a分支,同时只留下a分支
  • 首先确保b分支上的修改提交到了origin
1
2
3
git checkout a #先切换到a分支
git pull #获取最新的内容
git merge origin/b #合并b
1
2
3
git add .
git commit -m "merge test"
git push

但是此时还是有另一个分支存在,如果想删除分支b

1
git push origin --delete b

分支冲突

问题描述:如果当前修改的版本基于旧版,但是远端已经是新版origin/master,此时修改基于的内容和远端不同不能强行推

解决方法1:通过换基的方法解决,通过将当前的修改的旧版换到最新的基上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#先将文件提交到暂存区
git add . #保存在暂存区
git commit -m "XXX"
#进行换基操作
git rebase -i origin/master
#再次提交
git add .
#继续换基
git rebase --continue
#换基成功后,只需要一次备注(覆盖)
git commit --amend
#最后退出
git push
git push -f #或者强行推出

解决方法2: 暴力覆盖

1
2
3
4
5
git fetch --all #获取远端的全部内容
git reset --hard origin/master #强行将远端的内容覆盖到本地的文件中
git commit --amend
git push -f #强行推出


【基础工具】Git命令集
https://lihaibineric.github.io/2023/10/23/tool_git/
Author
Haibin Li
Posted on
October 23, 2023
Updated on
May 25, 2024
Licensed under