首页 > 其他 > 详细

gitd的学习和使用

时间:2019-02-14 20:57:33      阅读:271      评论:0      收藏:0      [点我收藏+]

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   意思是我们创建了一个叫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

 

gitd的学习和使用

原文:https://www.cnblogs.com/lirun-rainbow/p/10380558.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!