Git学习一:认识、安装、使用Git

什么是Git?

Git是一款源代码管理工具(版本控制工具)

为什么要管理源代码:

人工的去处理不同的版本,做相应备份会很麻烦。

其他的源代码管理工具有:

svn,vss,vcs......

Git交互协作流程:

Git安装:

git官网下载安装程序

随便选一个文件右击鼠标会看到如下图中的内容就表示安装成功

其中GUI表示Git的图形化操作界面

Bash表示Git的敲命令操作界面

使用Git:

新建一个项目文件夹mypro

选中项目文件右击鼠标点击Git Bash Here打开Git命令窗口

初始化Git仓储:

这个仓库会存放,git对我们项目代码进行备份的文件

使用命令`git init`创建

配置使用者的用户名和邮箱:

辨别在git中设置当前使用的用户是谁
每一次备份都会把当前备份者的信息存储起来
使用的命令: 
    配置用户名:`git config --global user.name "xxx"`
    配置邮箱:  `git config --global user.email "xxx@xx.com"`

把代码存储到git仓储中:

1.把代码放到仓储的门口
      `git add ./readme.md` 所指定的文件放到大门口
      `git add ./` 把所有的修改的文件添加到大门口


2.把仓储门口的代码放到里面的房间中去
      `git commit -m "这是对这次添加的东西的说明" `

这条指令如果不加-m就会进入vim编辑器的模式,可以敲代码,想要退出按esc键然后输入:q,强制退出按esc键然后输入:q!

可以一次性把我们修改的代码放到房间里(版本库)
`git commit --all -m "一些说明"`
 --all 表示是把所有修改的文件提交到版本库

status 命令查看状态:

可以用来查看当前代码有没有被放到仓储中去
命令:`git status`

当前修改了代码(会比较工作区的代码和暂存区的代码是否一样,不一样则表示修改了),但是还没有执行命令:

代码放在了大门口,但还没有放到房间里面:

代码放进了房间里面:

git中的忽略文件:

.gitignore,在这个文件中可以设置要被忽略的文件或者目录。
被忽略的文件不会被提交仓储里去.
 在.gitignore中可以书写要被忽略的文件的路径,以/开头
 一行写一个路径,这些路径所对应的文件都会被忽略,
不会被提交到仓储中
写法
* ` /.idea  ` 会忽略.idea文件
* ` /js`      会忽略js目录里的所有文件
* ` /js/*.js` 会忽略js目录下所有js文件

查看日志:

 `git log` 查看历史提交的日志

 `git log --oneline` 可以看到简洁版的日志

回退到指定的版本:

`git reset --hard Head~0`(--hard让工作区的代码被以前版本的代码覆盖,head~0指向上一次的版本)
表示回退到上一次代码提交时的状态


`git reset --hard Head~1`(head~1指向上上一次的版本)
表示回退到上上次代码提交时的状态
`git reset --hard [版本号]`
可以通过版本号精确的回退到某一次提交时的状态


 `git reflog`
可以看到每一次切换版本的记录:可以看到所有提交的版本号

分支:

默认是有一个主分支master


`git branch dev`
创建了一个dev分支


在刚创建时dev分支里的东西和master分支里的东西是一样的
切换分支
 `git checkout dev`


切换到指定的分支,这里的切换到名为dev的分支
`git branch` 可以查看当前有哪些分支
合并分支
`git merge dev`
合并分支内容,把当前分支与指定的分支(dev),进行合并
当前分支指的是`git branch`命令输出的前面有*号的分支
合并时如果有冲突(既在dev分支里面修改了,在没有合并前又在master分支里面修改了),需要手动去处理,处理后还需要再提交一次.

在分支dev中修改代码:

在dev分支中的代码版本日志:

切换到master分支并查看日志:

合并分支:

合并分支后查看master分支的日志:

删除dev分支(不能再自己的分支删除自己,不能自杀):

`git branch -d dev`

git协作:

GitHub: 
这个网站提供了允许别通过git上传代码的功能
提交代码到github(当作git服务器来用)

用github建仓库:

创建完仓库后,会出现如下页面:

通过http请求地址push代码:

`git push [地址] master`(第一次使用这个命令会要求输入github的用户名和密码)

示例: `git push https://github.com/axiaoha/test.git master`
会把当前分支的内容上传到远程的master分支上

然后刷新所在的github页面就可以看到所写的readme文件

继续修改文件,比如在项目里面新增一个index.html文件

然后刷新所在的github页面就可以看到所写的文件

其他开发者怎样拿到代码:

方式一:

download zip

方式二:

先创建一个新的文件(fakepro)模拟其他开发者:

`git pull [地址] master`

示例:git pull https://github.com/axiaoha/test.git master
会把远程分支的数据得到:(*注意本地-要初始一个仓储!*)


方式三:

先创建一个新的文件(clonepro)模拟其他开发者

`git clone [地址]`(和pull有点不一样,会在项目下面新建一个文件存放clone的项目

示例:git clone https://github.com/axiaoha/test.git
会得到远程仓储相同的数据,如果多次执行会覆盖本地内容。

ssh方式上传代码:

前面通过http请求地址push代码,这样如果别人要将代码上传到自己的github还要讲github的账号密码告诉别人,这样是不合理的,所以需要通过ssh方式来上传代码。

公钥 私钥,两者之间是有关联的
生成公钥,和私钥
 `ssh-keygen -t rsa -C "1186070923@qq.com"`(-t指定加密的方式)

通过任意一个目录打开敲命令操作界面:

找到公钥私钥所在位置:

打开公钥文件并复制内容

在git上创建一个新的仓库test02

然后刷新所在的github页面就可以看到所写的文件

push和pull操作
先pull , 再push

为了每次push和pull操作能够不要复制粘贴那么一长串地址,将这串地址变为类似于变量的形式,下次的push和pull操作只需要用这个变量代替就行

示例:

`git remote add origin https://github.com/axiaoha/test.git master`(remote远程)

`git push origin master`

`git pull origin master`

`git push origin -u master`(加上-u之后,git会把当前分支与远程的指定的分支进行关联,那么在下一次push时,我们只需要写上`git push`就能上传我们的代码。)

`git push`(相当于写了`git push origin master`)

`git pull`(不需要输入`git pull origin -u master`这个命令,此时这个命令就相当于`git pull origin master`,但是别人修改代码要进行push和pull操作时还是需要再输入`git push origin -u master`这个命令的)

使用vs code默认集成的Git工具块

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值