Git操作命令

235 阅读10分钟

git基本操作

检查安装信息

git

创建新的 Git 仓库

git init

git init 命令用于在目录中创建新的 Git 仓库。

在目录中执行 git init 就可以创建一个 Git 仓库了。

你可以看到在你的项目中生成了 .git 这个子目录,这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。

.git 默认是隐藏的,可以用 ls -a 命令查看。

初次运行git前的配置

设置提交代码的用户名和电子邮件
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

配置好之后,可以用git config --global --list命令查看配置是否OK

注意:这里设置的用户签名和将来登录GitHub的账号没有任何关系。可以随便写,就是在后续操作的时候知道是谁做了那一步的操纵

下载项目

git clone git@github.com:yourname/仓库名.git

注意:
在本地会生成一个项目的文件夹,设置显示隐藏文件可见,即文件夹.git
隐藏文件夹.git里面的内容就是本地仓库中的核心内容,切记不可删除

查看

查看git状态
git status

注意:
必须在项目文件下执行命令,cd 项目文件目录
文件在本地 git status 为红色
文件在本地缓冲区 git statuus 为绿色

查看每一次提交代码的版本信息
git log

拉新代码

git pull

提交代码

git add .
git commit -m '提交描述'
git push

git add . 把本地的文件放到本地的缓冲区(文件内容变绿),缓冲区可以理解为一个隐藏的仓库,就是一个存储空间,看不到
git commit -m '提交描述' 把缓冲区的文件存储到本地的仓库
git push 把本地的代码提交到远程仓库中

版本回退

本地及远程都恢复
  • 删除工作空间的改动代码,撤销commit且撤销add
  • 代码会丢失,本地及远程都会更新为此版本
  • 撤销并舍弃版本号之后的提交记录

恢复上一次的版本

git reset --hard HEAD^

^ 恢复成上次提交的版本,HEAD^^ 恢复成上上次提交的版本,就是多个^,以此类推或用~次数

恢复到指定版本

git reset --hard  版本号

注:  通过reset -hard 的方式,此时可以看到提交记录和文件都被撤销了,reset -hard 之后,后面的版本就找不到了使用需谨慎,不推荐使用。

远程恢复,暂存本地
  • 只撤销commit操作
  • 写的代码仍然保留

恢复上一次的版本

git reset --soft HEAD^

恢复到指定版本

git reset --soft  版本号

注意:  HEAD^的意思是上一个版本,也可以写成HEAD~1 ,如果你进行了2次commit,想都撤回,可以使用HEAD~2,这个命令仅仅是撤回commit操作,写的代码仍然保留

缓存

缓存的作用就是把你更改的文件,进行缓存起来,然后你可以进行其他操作,然后后面可以将更改文件恢复

git stash
  • 通过git stash将本地修改的文件添加到暂存区
  • git stash apply   将暂存区的数据进行恢复

应用场景:

  • 分支的切换:当需要切换分支的时候,本地修改文件进行缓存,后面切换回来就行恢复

eg:

git stash命令很好用
要是有写一半要换分支
就敲一下git stash 暂存了就
然后换回来之后,再git stash apply就找回来了继续编辑

注:对新增的文件进行缓存是不起效果的,对于新增的文件,要进行缓存的话,需要先添加到暂存区(git add .)才可以进行缓存。

分支相关

查看分支
git branch
创建并切换分支

创建并切换分支

git checkout -b dev     -b表示创建并切换分支

上面一条命令相当于一面的二条:

git branch dev 创建分支  
git checkout dev 切换分支
合并分支

合并指定分支到当前分支

git merge dev 
删除分支
git branch -d dev

标签相关

Git 的标签(tag)主要用于标记重要的版本节点,以便于将来进行查询、比较和快速回滚。

Git 的标签主要有两种类型:

  • 轻量级标签(lightweight tag):直接指向某个提交对象。可以通过 git tag 命令创建。
  • 附注标签(annotated tag):存为一个独立的对象,包含作者姓名、电子邮件、日期、标签信息,并指向某个提交对象。可以通过 git tag -a -m “tag message” 命令创建。

这两种标签的主要区别是:

  • 附注标签具有更丰富的信息,轻量级标签只包含一个提交对象的校验和。
  • 附注标签通过 Git 数据库进行校验和追踪,而轻量级标签没有。
  • 附注标签可以通过 git show 查看标签信息,轻量级标签没有这种信息。
创建标签
  1. 创建轻量级标签:
git tag v1.0
  1. 创建附注标签:
git tag -a v2.0 -m "Version 2.0 Release"

-a 参数后接标签名称,-m 参数后添加标签说明:

查看标签信息

查看本地指定标签对应的信息

git show v2.0

查看本地所有的标签列表

git tag

列出远程仓库中所有的标签

git ls-remote --tags

获取远程标签到本地

git fetch origin tag <tagname>

使用限定列出限定后的标签 :

git tag -l v1.*  

image.png

推送标签到远程仓库

提交一个标签到远程仓库的命令

git push origin v2.0

一次提交本地的所有标签到远程仓库的命令:

git push origin --tags
在标签上创建分支
git branch release-2.0 v2.0
从标签中切换到对应提交版本
git checkout v2.0
删除标签

删除本地的标签

git tag -d v0.9

删除远程标签主要有三种方式:

  • 使用参数 --delete
git push origin --delete tag <tagname>
  • 相当于推送一个空分支到远程分支:
git push origin :<tagname>
  • 先删除本地 tag,再推送一个空的 tag 到远程仓库:
git tag -d <tagname> 
git push origin :refs/tags/<tagname>
应用场景

git 退回到指定tag版本

步骤:

  • git checkout master (线上分支名称)
  • git tag
  • git show v1.2022.0905.1 (指定tag)
    • 返回:commit  backid(回退命令就用这个id)
  • git reset --hard backid
  • 拉取新分支:www.cnblogs.com/SZxiaochun/…

其他命令

(1)更新远程分支

本地仓库中与远程仓库origin同名的分支,并删除本地已经不存在的远程分支。

git remote update origin --prune
(2)git项目如何拉取以前的版本

方法1-git checkout

- 使用`git log`查看项目的提交历史。可以看到每个提交的版本号(commit hash)以及相关信息。
- 根据要拉取的版本选择不同的方式
    – 如果要拉取最新一次提交之前的版本,可以使用命令`git checkout HEAD~1`,其中的`1`表示要回退的步数。例如,如果要回退到上一次提交,可以使用`git checkout HEAD~1`。
    – 如果要拉取特定版本之前的版本,可以使用命令`git checkout `,其中的``必须是要回退版本的具体提交号。例如,如果要回退到某个具体的提交号为abcdef的版本,可以使用`git checkout abcdef`。
- 执行完以上命令后,git会自动将工作区和暂存区的文件回退到指定的版本。此时,可以使用`git log`命令验证是否已成功回退。
- 若要执行打包当前版本的操作,这里以创建一个tar.gz文件为例
`git archive --format=tar.gz --output="package.tar.gz" 1234abcd`

eg:

# 查看提交历史,找到需要打包的版本的commit ID
git log
 
# 假设commit ID是1234abcd,检出该版本
git checkout 1234abcd
 
# 执行打包操作,这里以创建一个tar.gz文件为例
git archive --format=tar.gz --output="package.tar.gz" 1234abcd

注意:通过git checkout命令回退版本只会改变当前工作目录中的文件,对远程仓库不会有任何影响。如果想要将回退的版本推送到远程仓库,需要使用git push命令。

方法2-git revert

- 使用git log命令查看项目的提交历史,并选择要拉取的版本的commit hash值。  
- 使用git revert命令,并加上要拉取的版本的commit hash值, `git revert `这将创建一个新的提交,将项目回滚到选定的版本。

方法3-git reset

- 使用git log命令查看项目的提交历史,并选择要拉取的版本的commit hash值。  
- 使用git reset命令,并加上要拉取的版本的commit hash值,`git reset `  
这将修改项目的HEAD指针,并将项目回滚到选定的版本。请注意,此方法将删除之前的提交历史。

方法4-git clone

- 使用git log命令查看项目的提交历史,并选择要拉取的版本的commit hash值。  
- 使用git clone命令,并加上要拉取的版本的commit hash值,`git clone –depth=1 ` 这将克隆选定版本的项目到新的目录中。

请注意,这些方法适用于提取项目的已有版本。如果你只是想查看或比较以前的版本,可以使用git show命令来查看特定版本的更改。

(3)使用checkout命令拉取版本

语法如下,其中xxx可以是提交哈希值、分支名或标签名。

git checkout xxx

eg: 拉取指定提交哈希值的版本

git checkout 1234567890abcdef

拉取指定分支的版本

git checkout branch_name

拉取指定标签的版本

git checkout tag_name

将git链接到github

生成SSH

在命令框中输入以下命令ssh-keygen -t rsa,然后回车三下,就会在C:\Users\你的用户名.ssh 中生成密钥。此文件夹中以下两个文件

  • id_rsa私钥
  • id_rsa.pub公钥

image.png

注意:  如果本地还未生成SSK key,可以通过该命令生成: ssh-keygen -t rsa -C "你的邮箱"

进入github配置ssh

将生成的公钥内容复制到github中

image.png

image.png

如何查看本地公钥ssh-key

方式1:文件夹方式查看

window系统打开目录文件:C:/Users/user/.ssh/id_rsa.pub

复制该文件中全部内容为ssh-key

git bash方式查看

依次输入以下命令,最后获取的文件内容为ssh-key

  • cd ~/.ssh 如果该命令无效的话,则本地没有ssh-key公钥,需要创建本地公钥
  • ls 查看当前目录下的文件
  • cat id_rsa.pub

以上合并一句为:

  • cat ~/.ssh/id_rsa.pub

image.png

git丢弃本地修改的所有文件

参考链接:www.mobiletrain.org/about/BBS/1…

新建项目并提交本地项目管理(基本操作命令)

参考链接:www.jianshu.com/p/6520fa989…

进入工程根目录: cd $project_path
初始化git仓库  : git init
链接到git server :   git remote add origin git@XX.com:namespace/Projectname.git
将更改文件放入暂存区: git add .
提交代码到仓库: git commit -m “initial commit”
将本地仓库的提交推送到远程仓库: git push -u origin master