【GIT】基础命令

GIT 的优势? 

  • GIT,是一个分布式版本控制软件,最初目的是为更好地管理Linux内核开发而设计。 
  • 分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
  • Github 或者 Gitee 实际就可以充当这个服务器角色,其是一个开源协作社区。
  • 当我们通过 git init 创建或者git clone一个项目的时候,项目目录会隐藏一个 .git 子目录,其作用是用来跟踪管理版本库的。

文件状态对应的,不同状态的文件在Git中处于不同的工作区域,主要分成了四部分:

  • 工作区:相当于本地写代码的区域。
  • 暂存区:暂存区是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。
  • 本地仓库:提交更新,找到暂存区域的文件,将快照永久性存储到 Git 本地仓库。
  • 远程仓库:远程的仓库,如 github。

git中常用的命令有哪些? 

  1. git clone url   --  下载一个项目和它的整个代码历史
  2. git init  -- 初始化仓库,默认为 master 分支
  3. git remote -v --  查看remote 连接的远程仓库是否成功以及信息 
  4. git remote add origin  <仓库地址>   --   本地已有仓库连接远程仓库
  5. git remote remove <远程仓库的别名 eg: origin> --  删除git远程链接
  6. git add . --  提交全部文件修改到暂存区
  7. git diff  -- 查看当前代码 add后,会 add 哪些内容
  8. git status  -- 查看当前分支状态
  9. git push -u origin "master" --  第一次推送要 添加-u 命令 
  10. ++++++++++  远程仓库名默认为: origin  ++++++++++
  11. git pull <远程仓库名> <远程分支名> -- 拉取远程仓库的分支与本地当前分支合并
  12. git pull <远程仓库名> <远程分支名>:<本地分支名>--拉取远程仓库的分支与本地某个分支合并
  13. git commit -m "<注释>" -- 提交代码到本地仓库,并写提交注释
  14. git commit -v  -- 提交时显示所有diff信息
  15. git rev-parse --short HEAD -- 取 commit 短缀
  16. git checkout -b <分支名> --  创建分支并且切换
  17. git checkout <分支名>  -- 切换到本地某个分支
  18. git branch -D <分支名>  -- 删除本地某个分支
  19. git branch -- 查看本地所有分支
  20. git branch -r -- 查看远程所有分支
  21. git branch -a  -- 查看本地和远程所有分支
  22. git push origin --delete <分支名> --    删除远程分支
  23. git merge <分支名> --  合并分支
  24. git push <远程仓库名> <分支名> --    本地指定分支到远程仓库
  25. git push --force origin master  --  强行推送当前分支到远程仓库,即使有冲突
  26. git checkout [file]  -- 恢复暂存区的指定文件到工作区
  27. git checkout .  -- 恢复暂存区的所有文件到工作区
  28. git log   -- 版本日志 包含提交的版本 操作者 日期 (方便查看commit的版本,但是版本回退后,使用git log 看不到回退版本号之后的版本记录) 
  29. git reflog  -- 使用git 命令进行操作的日志  包括当前步骤所在哪个版本(一个commit 产生一个版本, 指定版本回退只能回退到该commit) 以及操作的具体内容。 
  30. git reset --hard <目标版本号>   --  将版本回退
  31. git push -f   -- 简写提交更改,有时使用用 "git push"会报错,因为我们本地库HEAD指向的版本比远程库的要旧,用“git push -f”强制推上去。

Git冲突的场景,如何解决? 

一般情况下,出现分支冲突的场景有如下:

  • 多个分支代码合并到一个分支时
  • 多个分支向同一个远端分支推送

具体情况就是,多个分支修改了同一个文件(任何地方)或者多个分支修改了同一个文件的名称
如果两个分支中分别修改了不同文件中的部分,是不会产生冲突,直接合并即可。

应用在命令中,就是push、pull、stash、rebase等命令下都有可能产生冲突情况,从本质上来讲,都是merge和patch(应用补丁)时产生冲突。 

当Git无法自动合并分支时,就必须首先解决冲突,解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log 与 git reflog 去不同? 

git log 

commit 的版本日志 包含提交的版本 操作者 日期 (方便查看commit的版本,但是版本回退后,使用git log 看不到回退版本号之后的版本记录) 。

commit cc1d69829111fd22708f2f4ef48de11a05d0acc2
Author: lowmanisbusy <724040502@qq.com>
Date: Thu May 17 21:10:31 2022 +0800
git reflog

使用git 命令进行操作的日志  包括当前步骤所在哪个版本(一个commit 产生一个版本, 指定版本回退只能回退到该commit) 以及操作的具体内容。

版本回退后,仍然可以看到所有的版本记录 方便查看每个操作步骤所在的版本,可以根据版本号自由前进后退。

4e45386 HEAD@{3}: checkout: moving from master to dev
1a65396 HEAD@{4}: commit: 添加一行a=hello world
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值