Git命令学习笔记

1、安装

sudo apt-install git

2、创建本地仓库

在文件夹下使用命令

git init

之后可以使用如下命令查看到当前工作空间下多了一个.git隐藏文件夹

ls -al

3、版本创建和回退

.git就是版本库

image

添加新文件到缓存

git add xxx

将缓存中的文件提交并创建一个新版本

  • 在一次commit之前可以多次add,将多个变更提交到缓存区。
  • 提交成功后暂存区就被清空。
  • 提交只会将暂存区的变动提交至分支,而不会提交工作区中新增的(但并未add到暂存区的)内容。
git commit -m '版本说明'

image

注意初次提交可能会出现用户邮箱和用户名未知的情况,按提示设置好即可
image

查看版本记录

git log

image

当记录过多时可以使用如下命令简化输出

git log --pretty=oneline

当进行了分支管理时,可以使用如下命令查看分支图形化变更流程

git log --graph --pretty=oneline

回退1个版本
注意: 回退版本会使用历史版本覆盖当前工作区,并且会清空回退前的缓存区,也就是会造成缓存区的内容丢失。选择回退版本时应当先查看缓存区是否有变更内容使用git status

git reset --hard HEAD^  或  git reset --hard HEAD~1

回退n个版本

git reset --hard HEAD~n

转到某个指定的版本,常用于回退版本后又想回到最新版本

git reset --hard [版本号]

查看操作记录,常用于重新打开终端后查看版本号。

git reflog

查看工作区与暂存区的差异状态

git status

4、撤销修改

(1) 想撤销工作区未提交到暂存区的变动

该操作会将暂存区的对应内容覆盖到当前工作区

git checkout -- [文件名]

(2) 想撤销已经提交到暂存区的变动

该操作会撤销此文件到暂存区的提交,相当于回退到(1)中的情况

git reset HEAD [文件名]

该操作与(1)相同

git checkout -- [文件名]

(3) 想撤销已经提交到版本库的变动

与第三节相同,该操作会将版本库中对应版本的内容覆盖到当前工作区

git reset --hard HEAD^  或  git reset --hard HEAD~1
git reset --hard [版本号]

5、对比文件的不同

通用操作,该操作将会是显示指针1和指针2指向的版本中的对应文件的差异

git diff [指针1] [指针2] -- [文件名]

比较当前工作区(不填指针代表当前工作区)与当前HEAD版本之间某文件的差异

git diff HEAD -- [文件名]

比较当前工作区与暂存区之间某文件的差异

git diff -- [文件名]

比较当前暂存区与当前HEAD版本之间某文件的差异

git diff --cached

6、分支管理

之前的操作都是在主分支master上,多分支的原理:多一个指针进行指向


查看当前所在的分支

git branch

创建并转跳到新的分支

git checkout -b [新分支名]

image

切换到某个分支

git checkout [分支名]

快速把某分支合并到主分支

git merge [分支名]

image

合并后就可以删除分支了

git branch -d [分支名称]

7、分支的冲突解决

合并分支并不总是会直接成功,通常是两个分支对同一个文件做了修改,这种情况需要手动进入工作区调整代码后重新提交一个新版本。
image


使用git status可以查看冲突的文件
image
image

8、bug分支的解决

有时候,需要紧急解决某个bug分支里的问题,而手中的dev分支的工作区还没完全写完,还不能提交,这就需要学习如何保存工作现场


保存工作现场(类似压栈),之后就可以转到其他分支进行开发

git stash

查看已经保存的工作现场

git stash list

弹出并恢复工作现场(类似弹栈)

git stash pop

9、代码仓库管理

在一个大型项目中,常由项目经理在中央服务器创建中央仓库,并设置好代码框架,之后将任务分配给下属进行开发。为了方便本地服务器与中央服务器之间的代码提交,需要项目经理收集员工的ssh公钥


如果某台机器需要与github上的仓库交互,那么就需要把这台机器的ssh公钥添加到这个github账户上


(1)生成本机ssh公钥

先配置好本地git账户
image

生成本机ssh公钥

ssh-keygen -t rsa -C "邮箱地址"

(2)在github账户添加ssh公钥

image

10、克隆与分支跟踪

克隆分支

git clone [https地址/ssh地址]

推送本地分支到远程仓库

git push origin [本地分支名称]
# 其中origin指代远程仓库

使本地分支跟踪上游远程分支,这样的话当本地落后或领先上游分支时,git会发出提示,该提示也可以通过git status查看。

git branch --set-upstream-to=origin/[远程分支名称] [本地分支名称]

从远程拉取分支,该操作会把远程分支上的代码下载并合并到本地所在分支。

git pull orgin [远程分支名称]
posted @ 2025-10-20 16:17  wyuu101  阅读(7)  评论(0)    收藏  举报