Git命令版(powernode)
目录
- Git命令版(powernode)
- 1.添加文件
- 相关命令
- 案例实操
- 小结:
- 2.工作区和暂存区
- 2.1 名词解释。
- 2.1.1 工作区(Working Directory)
- 2.1.2 版本库(Repository)
- 2.2小结
- 3.版本本回退
- 相关命令
- 案例实操
- 4.删除文件
- 相关命令
- 案例实操
- 5.分支的相关操作
- 相关命令
- 案例实操
- 合并的冲突问题
- 6.远程仓库的使用
- 6.1下载线上项目
- 6.2 上传本地项目到远程仓库(https的方式)
- 6.2.1 初始化本地仓库
- 6.2.2 在本地仓库添加文件
- 6.2.3 将文件添加到暂存区
- 6.2.4 将文件提交到本地仓库
- 6.2.5 在gitee上创建一个项目
- 6.3 SSH方式访问远程仓库
- 6.3.1 配置SSH秘钥
- 6.3.2 在本地生成SSH认证证书
- 6.3.3 在gitee平台配置公钥
- 6.3.4 初始化本地仓库
- 6.3.5 在本地仓库添加文件
- 6.3.6 将文件添加到暂存区
- 6.3.7 将文件提交到本地仓库
- 7.修改电脑上默认gitee账号密码
- 8.IDEA中使用Git
- 如何创建远程仓库
- 创建分支
- 删除分支
1.添加文件
相关命令
git add readme.txt 添加一个文件,用来提交 提交后的文件就相当于真的交给git仓库
git add file2.txt file3.txt 添加多个文件
git add -A 将当前目录所有的文件都添加
git commit -m "提交文件的注释信息" 提交文件到版本库
git status 查看当前库的状态
git diff 查看修改的内容
案例实操
进入你本地的工作空间所在的目录
输入cmd
创建一个文件夹
并进入这个文件夹
git init
初始化的空Git存储库
双击Git Bash
进入你之前创建的文件夹的目录
创建一个test.txt文件 文件内容为aaaaaaaaa
查看test.txt文件的内容
将text.txt从本地工作空间add新增到本地索引
再从本地索引commit提交到本地仓库上
git status
git status
命令用于查看在你上次提交之后是否有对文件进行再次修改。
文件,文件夹在工作区,暂存区的状态
没有什么提交的,工作树干净
创建一个test2.txt文件 文件内容为bbbbbbbbbbbb
再次使用git status
命令
在主分支上,
未跟踪的红色文件:
使用"git add <file>…
"来包含将要提交的内容
test2.txt
没有添加到提交中,但存在未跟踪的文件(使用“git add”到跟踪)
git add test2.txt
警告:在“test2.txt”的工作副本中,下次Git接触LF时,LF将被CRLF替换
git status
在主分支
要提交的更改:
(使用“git-restore --staged<file>...”来取消分页)
新文件:test2.txt
#查看test2.txt修改的内容
git diff test2.txt
#再次编辑test2.txt的内容,增加一行cccccccccccc
vim test2.txt
#查看test2.txt的内容
cat test2.txt
#再次查看test2.txt修改的内容
git diff test2.txt
警告:在“test2.txt”的工作副本中,下次Git接触LF时,LF将被CRLF替换
diff --git a/test2.txt b/test2.txt
index 7b1ede4..b33146b 100644
--- a/test2.txt
+++ b/test2.txt
@@ -1 +1,2 @@
bbbbbbbbbbbbbbbbbbb
+ccccccccccccccccccc
小结:
Git init 初始化git仓库
Git add 添加指定文件
Git commit 提交添加的所有文件
Git status 查看当前git仓库的状态
2.工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。
2.1 名词解释。
2.1.1 工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的repostiory文件夹就是一个工作区:
working-dir
2.1.2 版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
分支和HEAD的概念我们以后再讲。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
俗话说,实践出真知。现在,我们再练习一遍,先对readme.txt做个修改,比如加上一行内容:
锄禾日当午;
汗滴禾下土;
谁知盘中餐;
粒粒皆辛苦;
然后,在工作区新增一个LICENSE文本文件(内容随便写)。
先用git status查看一下状态:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
LICENSE.txt
no changes added to commit (use "git add" and/or "git commit -a")
Git非常清楚地告诉我们,readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked。
现在,使用两次命令git add,把readme.txt和LICENSE.txt都添加后,用git status再查看一下:
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: LICENSE.txt
modified: readme.txt
现在,暂存区的状态就变成这样了:
所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
$ git commit -m "添加 粒粒皆辛苦和LICENCE.txt"
[master f8eb8ab] 添加 粒粒皆辛苦和LICENCE.txt
2 files changed, 3 insertions(+), 1 deletion(-)
create mode 100644 LICENSE.txt
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:
$ git status
On branch master
nothing to commit, working tree clean
现在版本库变成了这样,暂存区就没有任何内容了:
2.2小结
暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。
没弄明白暂存区是怎么回事的童鞋,请向上滚动页面,再看一次。
创建文件 在工作区
添加文件 到暂存区
提交文件 到版本库分支
3.版本本回退
注意:版本:指的是我们提交到分支中每一个内容
原理:我们每一次将指定文件提交到分支中,这个文件的内容都分配了一个id
相关命令
git log #查看当前分支的版本提交记录
git log --pretty=oneline #一个行显示
git reset --hard HEAD^ #回退到上一个版本
git reset --hard cb5f63 #回退到指定的版本号
案例实操
①
git reset --hard cb5f63 #回退到指定的版本号
②
git reset --hard HEAD^ #回退到上一个版本
4.删除文件
相关命令
先删除
git rm -rf 文件名
再提交
Git commit -m 备注
案例实操
5.分支的相关操作
相关命令
git branch #查看所有分支
git branch dev #创建一个叫dev的分支,不切换
git checkout dev #切换到一个叫dev的分支
git checkout -b dev #创建dev分支并切换到dev分支
git branch -d issue001 #删除issue001分支
git merge dev #合并分支
如把dev合并到master那么要在master分支上执行合并的命令
案例实操
合并的冲突问题
当两个分支中有同名称但是不同内容的文件时,就会发生合并冲突
Git的处理方式:
1.提示信息:告诉我们合并冲突了
2.将两个文件的内容都保留到同一个文件中,并且使用特点的字符标识出来,那一部分内容属于哪一个分支
作为程序员只能手动的处理
先合并,再手动解决冲突,再添加 再提交
模拟普通合并
HEAD指向的是当前分支
手动合并
6.远程仓库的使用
6.1下载线上项目
clone 克隆命令 下载项目
示例
git clone https连接地址
6.2 上传本地项目到远程仓库(https的方式)
步骤
1,让本地项目被git管理
2,提交项目到本地的版本库
3,把本地的版本库和中央版本库进行关联
git init
git add -A
git commit -m "提交项目的信息"
6.2.1 初始化本地仓库
git init
初始化本地仓库
6.2.2 在本地仓库添加文件
创建或者拷贝文件
6.2.3 将文件添加到暂存区
git add 文件名称
6.2.4 将文件提交到本地仓库
git commit 文件名称
6.2.5 在gitee上创建一个项目
git remote add origin Gitee远程仓库的地址
git remote
git push -u origin "master"
6.3 SSH方式访问远程仓库
https的方式连接远程仓库 VS SSH方式连接远程仓库
如果选择使用https的方式连接远程仓库,则必须输入用户名与密码
如果选择使用ssh方式连接远程仓库,则不需要输入用户名与密码
那么ssh连接的方式是如何保证安全的?
答案:在pc端生成一个密文,将这个密文配置到gitee中。那么每次使用当前电脑连接gitee仓库时,gitee就自动校验这台电脑保存的密文是否合法,如果合法则认为这台电脑是受信任的,就可以访问了
6.3.1 配置SSH秘钥
6.3.2 在本地生成SSH认证证书
ssh-keygen -t rsa -C "12140777+FBIHackerHarryHao@user.noreply.gitee.com"
注意:
邮箱一般使用平台注册邮箱
按三下回车
用文本编辑器打开id_rsa.pub
复制公钥
6.3.3 在gitee平台配置公钥
git init
git add -A
git commit -m "提交项目的信息"
6.3.4 初始化本地仓库
git init
初始化本地仓库
6.3.5 在本地仓库添加文件
创建或者拷贝文件
6.3.6 将文件添加到暂存区
git add 文件名称
6.3.7 将文件提交到本地仓库
git commit 文件名称
7.修改电脑上默认gitee账号密码
8.IDEA中使用Git
File->Settings
点击Version Control->点击Git->在Path to Git executable中选择Git的安装路径下的bin目录下的git.exe文件
新建一个Hello2类,->点击Add,添加到暂存区
鼠标右击项目
点击Git->Commit Directory
输入提交的信息->点击Commit 提交
鼠标右击项目->点击Git->点击Repository->点击Push
这里可以选择访问远程仓库的形式。
origin是以https的方式,origin2是 以SSH的方式,访问远程仓库。
这里选择 origin2 以SSH的方式,访问远程仓库。
点击Push
如何创建远程仓库
================================================================
鼠标右击项目->Git->Repository->Remotes
================================================================
创建分支
删除分支
远程仓库的分支