git教程

git的工作原理:

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

安装完git后,找一个文件夹,右键打开git bash,先设置本机的用户名和电子邮箱

git config --global user.name "hyl"
git config --global user.email "xxx@gmail.com"

配置好之后可以使用以下命令查看配置

git config -l

创建仓库命令
在某个文件夹中打开git bash,输入以下命令就可以使该文件夹变成git可以管理的仓库

git init

这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。如下:

这是git中没有任何文件,是一个空仓库,并没有分支,我们必须先创建一个文件并且add和commit之后,git才会产生默认分支,否则会报错

第一步

在新创建的git仓库中创建一个文件readme.txt,内容为:111111
用以下命令将此文件放入git暂存区

git add readme.txt

另外

git add .

是add当前文件夹的所有文件

第二步

用以下命令将此文件提交至仓库,单引号中的内容是本次提交的注释

git commit -m 'readme.txt的第一次提交'

提交文件后,可以用以下命令查看还有没有文件未提交

git status

当我们修改了readme.txt文件,将其内容改为:111111222222
此时再使用git status查看是否有未提交的文件,发现有一个文件

如果我们希望看到文件的那些内容被修改了,可以使用以下命令

git diff readme.txt

如果我们确认了此修改,就可以再次使用git add readme.txtgit commit -m 'readme.txt的第二次提交'

二、版本回退

我们可以再次修改readme.txt文件,将其内容改为111111222222333333,然后使用添加和提交操作。
现在我们已经对readme.txt文件进行了三次提交操作,可以通过以下命令查询历史记录

git log

也可以使用以下命令显示精简后的历史记录

git log --pretty=oneline

现在我们希望退回上一个版本,有两种方法可供使用,第一种是:

git reset --hard HEAD^

如果想退回上上一个版本只需把HEAD^ 改成 HEAD^^ 以此类推,但是如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用以下写法git reset --hard HEAD~100

第二种方法是通过版本号进行版本回退:

git reset --hard 版本号

可利用
git log --pretty=oneline查询当前版本之前的版本号,或者利用git reflog查询所有版本号

三、理解工作区与暂存区的区别?

四、Git撤销修改

我对一个或多个文件做了修改,然后我不想改了,想恢复原样,则有以下三种方法:
第一种:我知道各个文件哪些地方做了修改,然后我手动该回去
第二种:使用git reset --hard HEAD^命令恢复到上一个版本
第三种:使用git checkout .把当前文件夹下所有文件在工作区做的修改全部撤销???

五、远程仓库(两种场景)

第一种:

刚进公司,负责人会给你一个git仓库地址,你只需要用

git clone git仓库地址

拉取代码即可,注意不需要为此新创建文件夹,拉下来的代码本身就在一个以仓库名为名称的文件夹中

一般情况下,公司不会让你直接把代码上传至仓库的master分支,负责人会给你一个分支名称,比如是develop分支,那么将来你写的代码就要上传至仓库的develop分支
我们现在本地创建一个develop分支,并切换至这个develop分支进行操作,有两种方式可供选择:

  • 第一种:git branch developgit checkout develop
  • 第二种:git checkout -b develop

然后切记创建develop之前,要先在master下提交一个README.txt文件,然后在develop分支下,使用以下命令将本地的develop分支的代码提交至和云端仓库的develop分支,并且将两个分支绑定

git push -u origin develop

在第一次push之后,以后直接用git push即可

第二种:

自己在本地写完代码后,想上传到一个空的云端仓库中(注意云端仓库必须有README.txt之类的文件,否则无法产生master分支)
现在本地用git init创建本地git仓库
创建README.txt,依次使用git add .git commit -m "初始化提交"对仓库进行初始化操作
使用命令git remote add origin 云端git仓库地址设置本地git仓库关联的云端git仓库
这时候如果使用git push -u origin master是会报错的如下图

为了解决之一问题,需要使用强制push命令git push -f origin master,此命令会强行将云端仓库的内容与本地保持一致。

这里提示一下,origin不是命令的关键字,remote是命令的关键字,origin只是本地仓库的一个remote,一个仓库可以有多个remote,可以为origin,myorigin,test等,没有限制,但remote不能重名

branch相关命令

remote相关命令

idea集成git

在idea中找一个java项目,打开设置

用idea完成git初始化操作,这就相当于git init命令,此时项目的所有文件将变为红色,红色代表:未add的文件

选中文件或文件夹,单击右键

已经add后的文件将会变为绿色,绿色代表:未commit的文件
选中文件或文件夹,单击右键,提交后文件将变为白色,白色:已经commit的文件


选中文件或文件夹,单击右键,

输入云端仓库的地址

第一次提交需要用强制提交命令,打开terminal,输入git push -f origin master

posted @ 2022-06-11 23:50  以学愈愚  阅读(76)  评论(0)    收藏  举报