当前位置:   article > 正文

版本管理工具Git的常用命令行指令总结_常用的版本控制工具(git常用命令)

常用的版本控制工具(git常用命令)

最开始先推荐两个神级网站,一个帮助理解git底层逻辑,一个是你走投无路的解药。

  1. 推荐多玩几遍 git 游戏,理解一下 git 的底层逻辑。

  2. 如果你真的把版本控制弄的一团糟,https://ohshitgit.com/ 是你的解药。

1. 介绍

  • 克隆远程库到本地(从无到有):clone
  • 远程仓库有变动,把变动拉取到本地:pull
  • 工作区域放到暂存区并产生版本号:git add
  • 暂存区域提交到存储区:git commit
  • 本地仓库发布到远程库(从无到有):publish
  • 本地仓库有变化,把变化推送到远程库:push
    image-20230423134811888

2. 仓库操作

  • 查看版本git -v

  • 创建仓库

    • 本地新建

      1. 先新建一个空文件夹作为仓库;

      2. 在空文件夹里右键打开Git命令行;

      3. 在当前文件夹构建仓库(初始化):git init

      与客户端创建的区别:客户端会在构建完毕后自动提交一个.gitattributes文件,所以文件夹内有一次提交后留下的内容;命令行构建的仓库是一个真空仓库,只有一个目录结构,没有任何文件。

    • 远程克隆

      1. 在仓库外一层文件夹右键打开Git命令行:

      2. 克隆指令git clone 远程仓库地址

      3. 也可以clone远程仓库后自己重新命名,不使用远程仓库的名字:git clone 远程仓库地址 本地仓库重命名

  • 仓库配置git config 配置名称 配置值

    还可以使用全局配置,即整个git软件的所有仓库进行配置:git config --global 配置名称 配置值

    相当于是在更改一个全局配置文件:.gitconfig

3. 文件操作

  • 查看暂存区状态git status

    如果有新文件会显示有未追踪文件

  • 把文件增加到暂存区进行比对:git add 文件名

    文件名可以用通配符来表示同类型的所有文件,eg:git add *.java

    这个时候再查看暂存区状态会发现显示暂存了一份文件:

  • 把文件从暂存区删除,相当于撤回存入暂存区的操作:git rm -- cached 文件名

    这个时候暂存区状态就回到刚创建后的状态了:

  • 把文件从暂存区提交到仓库git commit -m 提交说明

    这里-m表示消息的意思,后面跟着的是对这次提交的说明。

    里面会显示版本号和文件状态的码,其中前3位表示文件类型(100表示为普通文件类型)后3位表示文件权限

    提交完后,我们再来查看暂存区状态,发现没有任何内容了。

  • 查看历史提交(只能查看当前HEAD指针所在版本及之前的版本):git log

    还可以增加附加格式来使得可读性更强:git log --oneline

  • 注意:修改和删除操作的时候依然需要先把删除的文件移入暂存区,再进行比对。因为修改或删除本质上并没有失去之前的文件,只不过文件状态引用文件内容版本号变化 或者 取消文件内容的引用。所以都要先进行add操作,再进行commit

4. 文件误删除

  • 在我们不小心误删除的文件的情况下,可以采取命令将存储区域中的文件恢复到工作区,默认恢复的版本是当前最近提交的那一次版本

    恢复文件命令:git restore 文件名

    但是如果把删除的操作已经提交过了,

    这个时候继续用恢复文件的命令就不好使了,因为默认恢复的版本是当前最近提交的那一次版本,那一次版本中已经没有a.txt文件了!

    这个时候就需要把当前版本库重置到之前一次提交去;或者使用撤回指定提交版本的命令。

  • 当前版本库重置到之前某一次提交git reset --hard 提交版本号

    这样就把当前库所有文件都重置到之前提交版本时的状态了。

    但是这个时候发现我们不能看到全部版本信息了,因为git log只能查看当前HEAD指针所在版本及之前的版本。

  • 查看所有文件提交版本信息(包括被删除的):git reflog -v

  • 撤回指定提交版本git revert 需要被撤回的提交版本号

5. 分支操作

  • 创建新分支git branch 分支名称

    注意:必须有过提交操作,才能创建分支,不然空项目没有办法创建分支。底层原因是因为没有任何提交操作,master文件还没有创建,HEAD索引指向的master为空。

  • 查看所有分支git branch -v

    其中*表示当前所处分支

  • 切换分支git checkout 要切换的分支

  • 创建分支并切换git checkout -b 分支名称

    当然创建分支和切换分支两个命令可以合二为一

  • 删除分支git branch -d 分支名称

6. 分支合并与冲突

合并其他分支到当前分支(需先切换到当前分支):git merge 其他分支名称

这个时候没有冲突就会合并成功,如果有冲突的话,则会显示出来

这个时候我们打开冲突文件,冲突文件的文件内容就会显示比对操作

我们需要靠自己判断一下,更正我们最后需要的结果后保存就行!

然后我们把修改后我们需要的最后结果的文件,当做全新的文件做一次提交就解决冲突了。

7. 标签操作

  • git log命令也可以后跟版本号查看某一次提交的之前全部历史git log 版本号

  • 给某一提交版本加标签git tag 标签名称 提交版本号

    因为版本号太长了,如果需要经常是用这个提交的版本号,就会很麻烦。所以需要给当前提交版本增加标签,可以理解成起一个别名,以后使用的时候直接使用别名来定位到指定版本号。

  • 查看全部标签:git tag

  • 删除标签:git tag -d 标签名

加了标签后,查看 某一次提交的之前全部历史 所使用的提交版本号就可以用别名替代了:

注意:① 标签不能重复!② 任何需要版本号的地方都可以使用对应标签来代替

8. 远程仓库

有对应远程仓库的本地仓库,在config文件里有一栏配置remote,配置了远程仓库的地址,并且起了一个别名(origin),可以用别名来代替那一串url。

下面的操作本质都是再修改 config文件 里的 remote配置项:

  • 本地仓库关联远程仓库:git remote add origin 远程仓库url
  • 本地仓库删除关联git remote remove
  • 本地仓库重命名remote别名git remote rename 新名字

下面的操作是关于本地与远程仓库的互动:

  • 本地推送到远程仓库:git push 别名(origin)

    注意:首先必须要在本地提交完毕,才能往远程仓库推送!

  • 如果配置的是SSH的url,则需要安全认证功能,生成安全证书ssh-keygen -t rsa -C远程仓库sshurl

    我们找到生成的.ssh安全认证文件夹,里面有id_rsa.pub文件,包含了我们安全认证的内容。我们复制这个文件里的公钥,添加到GitHub中

  • 远程仓库有变动,把变动拉取到本地:git pull 别名(origin)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/845494
推荐阅读
相关标签
  

闽ICP备14008679号