gitd的学习和使用

1. git是什么

Git 是一款源代码管理工具(版本控制工具), 我们写的代码需要使用 git 去管理。管理工具有很多 如SVN vss  vcs 等 我们学习的是 git。

2.git 的安装

2.1  前往git官网下载git软件 网址:https://git-scm.com/download/win  

2.2 直接双击安装即可。点击下一步,不修改任何设置 ,知道安装开始 ,就自动安装

2.3 安装完成之后,在桌面任意位置右键单击,看到git 的图标(如下图),证明git 安装成功。                                        

                                                                                                                                                             

                          

2.4  Git GUI Here  是git 的图形化操作界面    Git Bash Here 是git 命令输入窗口

3. git 的使用

3.1初始化 Git 仓库(这个仓库存放的是我们的项目代码进行备份的文件)

在项目目录中右键单击,选择Git Bash Here 后单击打开命令窗口,输入命令: git init  回车.  这是就会创建一个 .git 的隐藏文件夹,他里面储存我们备份的文件。此时我们就可以在项目文件中开始写代码了。

3.2配置使用者的用户名和邮箱(配置个人信息)

每一次备份 都会把备份者的信息储存起来   --global表示全局配置,即配置一次就可以

配置用户名: git config --global user.name "zhangsan"        配置邮箱: git config --global user.email "zhangsan@sina.com“” 

3.3把代码储存到 git 仓库中

3.3.1  先把代码放到仓库的大门口  命令: git add “文件的路径”  例如:git add "./readme.md    意思是把当前目录下的 readme.md 文件放到git 仓库的大门口

3.3.2  把大门口文件放到仓库的里面 命令: git commit  -m "这是我们完成的第一个功能” , git commit 就是不管我们仓库门口有多少文件,此时会全部都将门口的文件放到仓库里面, -m 的作用是对此次放入到仓库代码的一个说明,m 是message 的意思,后面的说明内容需要用引号包裹。当出现如下图片的提示,说明我们的文件已经成功放到git 仓库。

                                   

3.3.3 当我们项目中有多个文件修改时,需要储存到git 仓库, 我们可以使用 git add ./  来提交到仓库大门口(暂存区) ./ 表示项目文件夹下所有修改过的文件和新建的文件。例:

                                        

3.3.4 我们每次都要执行 git add 文件路径  比较繁琐 这时  我们只需要执行 git commit --all -m "这是一次性把代码放到仓库中(版本库)", all 表示所有的修改过的文件

                                      

 

3.4 工作区、暂存区、版本库的概念

当我们执行代码 git add 的时候 把代码放到仓库大门口,大门口就被称作为暂存区。我们的项目文件中被称作为工作区(不包含 .git)。当我们执行git commit 命令时,是把文件放到仓库的里面,这里面被称为版本库

3.5 git status 命令查看状态 (查看我们的代码是否放到了git 仓库中)

 当我们了代码后,还没有执行放到git仓库的命令时(没有放到仓库大门口时,没执行git add),我们执行命令git status,有如下提示

                        

 当我们了代码后,并且将代码放到git仓库的大门口时(放到仓库大门口时,执行git add但是没实行git commit),我们执行命令git status,有如下提示

                      

 当我们了代码后,并且已经将代码完全放到git仓库时(已经执行过git commit -m " "),我们执行命令git status,有如下提示

                     

3.6 gitignore 设置忽略文件

 在gitignore 在这个文件中可以设置要被忽略的文件或者目录,忽略的文件就不会提交到 git 仓库中。  在 .gitignore 文件中可以书写被忽略文件的路径,以 / 开头,一行写一个路径,这些路径所对应的文件都会被忽略,不会被提交到仓库。如:  /.idea  (.idea文件被忽略)   /js  (在js文件夹下的所有文件都会忽略)  /js/*.js (在JS文件夹下的所有js文件都会忽略)

3.7 git 日志查看

 查看我们提交过多少次代码 命令: git log

通过git log --oneline   可以查看简介版本的日志  

                    

3.8 git 版本回退、  git reflog 查看版本操作记录

回退到指定的版本 命令: git reset --hard Head~0   表示会退到上一次代码提交的状态, 0 代表索引     

我们还可以通过版本号实现回退 命令: git reset --hard b42839c   表示回退到版本号为b42839c 的那次提交的代码,例如

           

如果不小心我们关闭了 git 命令窗口 当我们再次打开时,git log --oneline 的版本日子都被清空了 我们无法记住很多版本号 这时就需要 命令: git reflog  它可以看到每一次版本切换的记录,可以看到所有提交的版本号:

                                                            

3.9 git 创建分支, 查看/切换/合并 分支的操作

当我们在创建一个功能未完成时,但是有需要储存到git仓库时,我们可以自己创建一个分支(只有自己可以使用),命令: git branch dev(或者是 git checkout -b dev)   意思是我们创建了一个叫dev 的分支。在刚创建时 dev分支里面的东西(我们提交的代码)和 master 分支里面的东西是一样的。

查看分支: 通过命令: git branch  这是会显示我们创建的分支和主枝干(master) ,那个前面带有 星号※,表示是我们当前正处于的那个枝干,如图:

    

 切换分支:  命令 git checkout  分支名  例如:git checkout dev (切换到dev分支)  git checkout master (切换到master主分支)。

注意:如果我们的功能未完成就需要提交到git仓库时,我们必须先切换到自己创建的分支,然后再执行 git add 文件路径 去提交,这样才能提交到自己创建的分支上

    

合并分支: 命令: git merge dev 此命令是在master分之下执行 表示把 dev 分支合并到 master上。在别的分支下也可执行,表示 git branch 命令输出的前面带有 * 的分支与merge后面跟的分支合并。

注意: 如果我们想把分支提交的代码合并到主分支(master)上面,供大家一起使用,则需要先将分支通过 git checkout mater 切换到主分支上,然后通过git add ./.....再提交代码

                              

删除分支:  git branch -d 要删除的分支的名称  例如: git branch -d dev (删除的dev 分支)   注意: 该命令不能将要删除的分支下执行,如我们要删除dev分支,则不能再dev分支下执行该命令,需要切换到主分支(master)或者其他分支

如果我们在分支和主分支(master)同时做了修改,然后将分支合并到主分支(master)上时,就会出现冲突,如此下图。我们可以手动处理,如图

                                                                                                                                                         

       

3.10 通过 git push 命令,把本地代码推送到服务器上

我们可以通过git 把代码上传到 gitHub 的服务器上 ,别人可以随时通过命令去下载。 GitHub网址: https://github.com/ (当做github服务器来用)

创建GitHub仓储:  进入GitHub官网 注册登陆后,点击右上角的加号,选择第一项 new repository (创建仓储)。

在命令窗口运行: git push 【地址】 master  这样就会把当前的分支长传到远程的 master 分支

                             示例: git push https://github.com/loverainbowBei/gitDemo.git master

成功上传到GitHub 服务器的样式 如下图:

                                                                 

 

 从远程服务器拿代码(方法1 git pull 【地址】master 当我们需要从GitHub远程服务器上把别人的代码拿过来自己用时,需要用到 命令: git pull 【地址】master  这里不一定是master 只是master情况较多,这样就把远程的数据得到了(注意: 拿远程数据时,需要现在本地创建一个仓储),多次执行,数据会合并,不会覆盖

 

      

从远程服务器拿代码(方法2 git clone 【地址】):  会得到远程仓库相同的数据,多次执行会覆盖本地内容,clone会连同仓库的文件夹一起下载下来,一般只有在第一次从远程仓库下载代码时 使用

          

 

3.11  通过ssh 方式上传代码

ssh方式上传代码。 生成公钥 和 私钥,在任意目录下打开命令窗口 命令:ssh-keygen -t rsa -C "邮箱",如下图所示,表示秘钥生成成功:

                                                                            

给GitHub配置ssh 公钥。

打开C盘 -->用户 --> 用户名(我这里是LiRun)-->.ssh文件夹 --> id_rsa(私钥) id_rsa.pub公钥()--> 将公钥文件用编辑器打开 -->复制里面所有代码(字符窜)-->回到GitHub官网单击登录图标 --> 选择setting --> 左侧菜单栏选择 SSH and GPG keys --> 单击右侧New SSH key 按钮 --> title 名可以随便取 key的输入框中将刚才复制的字符串粘贴进去 -->点击Add SSH key -->SSH key添加完成

把我们的代码上传到远程服务器,通过ssh方式

和https一样。先单击登录旁边的加号 --> 选择 new repositry,创建一个新的仓储,-->命名,创建完成 --> 在新建的仓储中选择SSH并且复制其地址 -->  在命令窗口输入 : git push [地址] master --> 上传成功 如下图

 

 注意当多人已开发时,大家都会向GitHub上传代码,同样也会一起冲突,需要我们手动修改,正常情况下我们先从GitHub上拿到最新的数据,然后自己写了以后,再将代码上传至GitHub,但是我们修改完代码上传之前,别人又一次将修改的代码上传了GitHub,此时我们在用git pull 拿到最新的代码时,那么就会造成代码冲突,这是就需要我们手动修改,冲突的代码还在编辑器都显示(别人刚刚上传的和你自己即将要上传的),我们决定要留下哪一个,然后把不需要的删除,现在本地仓储储存,git add ./  git commit -m " ". 然后再次上传到远程 git push 【地址】master。

 通常我们在修改完成代码,需要上传服务器时,要先pull,又因为如果服务器的版本和本地的版本不同,我们可以先把冲突解决,然后把最新的版本上传(push)至服务器

3.12  pull 和 push 的简写

用一个变量代替服务器地址, 命令 git remote add 变量名 【地址例如git remote add origin git@github.com:loverainbowBei/sshDemo.git

  那么。我们再pull 或者 push 是 ,就可以写简写为 git pull/push origin master 即可

我们使用这个命令 git pull / push origin -u master 执行一次时。下一次再 pull 或者 push 时 就可以直接写 git pull 或者 git push 。因为加上 -u 执行一次之后,git 会把当前分支与远程指定的分支进行关联,他就相当于 git pull / push origin master

 

 

0f1db23
posted @ 2019-02-14 20:29  半路出家垒代码  阅读(897)  评论(0编辑  收藏  举报