Git基本操作与完整实践流程

本文详述了Git的基本操作,包括创建版本库、版本回退、理解工作区与暂存区的区别、撤销修改与删除文件、远程仓库管理、分支操作及合并,特别是多人协作中的bug分支管理和冲突解决。此外,还介绍了实际的Git完整流程,从初始化仓库到与远程仓库交互,以及遇到的常见问题及其解决方案,如提交失败、网络连接问题和文件换行符问题。
摘要由CSDN通过智能技术生成


一、 git基本操作内容

1. 创建版本库

1. 首先创建一个版本库 testgit版本库
这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”
2.通过命令 git init 把这个目录变成git可以管理的仓库
当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的
小坑: .git默认是隐藏的,将隐藏的项目勾选,就会出来
在这里插入图片描述

3.git add readme.txt 添加到暂存区 (提交修改)
4. 用命令 git commit -m ‘readme.txt 提交’(提交的注释) 告诉Git,把文件提交到仓库。(提交文件)
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。第二步:使用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
5. 用命令 git status 来查看是否还有文件未提交 (未提交文件查看)
6. git diff readme.txt (用来查看文件到底修改了什么地方)
再对readme.txt进行修改后,仍然利用 3 和 4 进行提交修改和提交文件,最好在提交之前查看下状态,提交之后再查看一状态。

2. 版本回退

1.git log 命令显示从最近到最远的显示日志(显示所有操作日志) git log –-pretty=oneline(简洁显示所有日志!!!)
2. 版本回退到上个版本 git reset --hard HEAD^ 回退上上个版本.git reset --hard HEAD^^ 回退第几个加几个^ (回退版本)
简便命令: git reset --hard HEAD~100 (回退至第几个版本,简便版本!!!)
3. 现在已经回退到上一个版本,可以在通过 git log 来查看历史日志
4. 现在想回退到最新版本,可以通过 git reset --hard 版本号 现在需要通过命令来获取版本号 git reflog
在这里插入图片描述
5. git reset --hard e98a14a (回退到最新版本)

3. 理解工作区与暂存区的区别

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

4. Git撤销修改和删除文件操作。

一:撤销修改:
git restore (可以丢弃工作区的修改) ,再进行cat < file >查看,内容还是未修改之前的。
二:删除文件:
现在目录下添加了b.txt文件, git add < file> 添加到缓存区,在还没有进行提交之前,将所修改的文件进行删除;rm < file>
进行 git status 查看状态,b.txt文件已经被删除,1.再通过git restore < file> 进行撤销,回到添加缓存区的状态 2. 直接git commit -m 提交注释
(git checkout 这个命令承担了太多职责,既被用来切换分支,又被用来恢复工作区文件,对用户造成了很大的认知负担。)
git switch 和 git restore 分别负责 更改分支的操作 和 更改文件的操作

5. 远程仓库。

第一步:创建SSH Key
在这里插入图片描述
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥
在这里插入图片描述

git 远程 添加 origin(远程仓库在本地的别名,标识名称) 仓库地址
把本地库的内容推送到远程,使用 git push origin -u master 命令,实际上是把当前分支master推送到远程仓库。-u 作用是关联本地和远程仓库

现在本地文件修改之后, git commit -m 提交注释 进行本地提交至当前分支后,只需要使用 git push origin master 把本地master分支的最新修改推送到github上了

6. 创建与合并分支(用git switch 替换git checkout)

(廖雪峰老师创建和合并分支)
1.git switch -c dev (创建并切换到新的分支) git checkout 命令加上 –b 参数表示创建并切换(老版本)
2. git switch master (直接切换到已有的master分支)
3. git branch (查看分支)
4. git merge dev (用于合并指定分支到当前分支上)在master分支上合并dev分支内容
5. git branch -d <分支名> (用于删除指定分支)

合并分支冲突:主分支进行修改并提交,分支1也进行修改并提交,这时候要将分支1合并到主分支,会冲突
在这里插入图片描述
查看状态 并查看readme.txt的内容 修改fenzhi1上面的内容,修改成和主干上的代码保持一致。
在这里插入图片描述

7. bug分支:(!!!工作中应该比较重要)

整体流程:比如我在开发中接到一个404 bug时候,我们可以创建一个404分支来修复它,但是,当前的dev分支上的工作还没有提交。工作进行到一半无法进行提交, Git还提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。
git stash (将当前的工作现场进行隐藏) 通过git status查看状态,是干净的,超强!!!
现在就可以用 git switch -c issue-404 (创建404bug分支),修复完成后进行合并到主分支,然后删除bug分支;
现在,我们回到dev分支上干活了。git switch dev切换到分支,
git stash list (查看所有工作现场)
现在需要恢复dev工作现场,
1.git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
2.另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

8. 多人协作:

当你从 远程库的默认名称是 origin
要查看远程库的信息 使用 git remote
要查看远程库的详细信息 使用 git remote –v
在这里插入图片描述


二、实际完整流程操作训练:

在这里插入图片描述
打开工程,用脚手架直接生成的框架,自带.gitignore
1.git init 生成工作区(要有.git文件夹)
2. git add . (将工作区代码添加到缓存区)
3. git commit -m “注释” (将缓存区代码提交到版本区)
到现在为止,本地仓库创建完成
4. git remote add origin https://github.com/xxx/AntdPro_GitDemo.git (添加远程仓库地址)此时可以git branch查看一下本地分支
5. git push origin master 将本地库的内容推送到master分支,如果远程没有master分支,则自动创建master分支

* [new branch]      master -> master

现在进行查看github上,有了master分支,并且本地库所有文件上传到了master分支上
6. git switch -c dev 创建dev分支并自动切换到dev分支
7. git push origin dev 将本地库的内容推送到dev分支,如果远程没有dev分支,则自动创建dev分支
8. 修改本地代码后 git add . 然后 git commit -m “注释” git push origin <分支名>
9. 远程仓库进行修改后,本地拉取 git pull origin dev 根据远程的dev,生成本地的dev

10.从远程克隆数据仓库 git clone https://github.com/xxx/AntdPro_GitDemo.git
在这里插入图片描述
11. 查看下分支git branch,发现只有一个master分支,但其实远程有两个分支,这是因为本地仓库并没有创建第二个dev分支
git remote -v 查看下远程库的详细信息,可以看见有两个分支。
现在要通过 git switch -c dev origin/dev 根据远程的dev分支创建本地的dev分支
git branch 查看本地已有两个分支 git pull origin dev 将远程dev分支的内容拉取到本地
12. 现在克隆的源文件有修改,通过vscode直接简便提交,然后推送到远程库
在这里插入图片描述
13. 本地现在需要重新拉取远程库的修改文件 git pull origin dev ,查看cat README.md 拉取成功
14. 现在本地文件创建了一个新的分支 czy ,并进行了内容的修改,提交并推送到远程。但是此时的本地克隆的仓库并没有这个分支,也无法使用git switch -c czy origin/cy 根据远程的czy分支创建本地的czy分支 , 此时需要先git pull 拉取一下远程数据,再进行git switch -c dev origin /czy

三、遇到的问题

  1. git提交失败——running pre-commit hook: lint-staged
    解决办法 git commit -m “注释” --no-verify
    在这里插入图片描述

  2. OpenSSL SSL_connect: Connection was reset in connection to github.com:443
    出现这种情况多半是因为设置了系统代理 取消全局代理即可
    git config --global --unset http.proxy
    git config --global --unset https.proxy

  3. git warning: LF will be replaced by CRLF in package.json
    原因是需要提交的文件是在windows下生成的,windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示。
    解决办法:禁用自动转换 :git config --global core.autocrlf false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值