Git Bash通常用法

目录

1、简介

2、Git使用说明

2.1、准备工作

2.1.1、建立仓库

2.1.2、安装Git及初始化

2.1.3、验证是否开立SSH服务

2.1.4、完成 SSH 配置

2.2、开始工作

2.2.1、Git设置

1、初始化

2、将远程仓库进行本地化标识

3、获取develop数据

4、创建分支并关联

5、提交文件

5.1、添加文件

5.2、将文件添加到本地库

5.3、提交文件

5.4、上交文件

5.5、最终效果

3、其他参考


1、简介

当前常用的代码管理平台有:GitHub、bitbucket、OSChina。可根据实际情况,自行选择。本文使用Gitee。

 对于Git的使用,是不分网站的。即,只要使用Git工具,操作是相同或类似的。 

推荐另一Git教程:Pro Git(中文版)

 参考的文章为:廖雪峰的博客

2、Git使用说明

2.1、准备工作

2.1.1、建立仓库

在Gitee官网上,创建一个仓库

创建完成后。点击“克隆/下载”按钮。

会弹出一些基本设置信息(如下图)。这部分过会儿会用到

2.1.2、安装Git及初始化

下载地址:这儿

点击安装,运行Git Bash。

安装完成后需要配置基本信息(就是上图中的身份信息): 

git config --global user.name '郑林' 
git config --global user.email 'zhenglin_beijing@163.com'

上面的配置是用于标示开发者,一般而言不会有同事或朋友恶意重名,若有恶意重名,也可以限定。

执行以下命令,看看目前git的配置信息

git config --list

如下图所示

就可以查看本机的配置文件信息。

2.1.3、验证是否开立SSH服务

本步骤,要验证本机是否已开启SSH服务。

还是在git Bash界面,运行如下命令

~/.ssh

或者

 ~/.ssh ls

若本机具备了SSH服务,则git控制台应该有如下信息

若本机未安装SSH,则百度window11 开启SSH。

【注意】,上面的截图中,有个SSH路径信息:/c/Users/Administrator/.ssh (每个人的路径不同,以实际为准)一会儿回用到。

2.1.4、完成 SSH 配置

在git bash中输入以下命令:

ssh-keygen -t rsa -C "你的邮箱"

以我的为例,就是:ssh-keygen -t rsa -C "zhenglin_beijing@163.com"

然后一路回车即可,不需要输入内容,最后出现如下界面

然后,在2.1.3中的SSH路径中,就会有两个文件。id_rsa和id_rsa.pub

打开id_rsa.pub,将内容全部复制。粘贴到Gitee的公开key中

2.2、开始工作

2.2.1、Git设置

创建一个文件夹,右键选择“Git Bash Here”

1、初始化

输入 git init

初始化完成后,默认会为本地创建一个main的分支。

在Gitee网站建仓库时,我们选择了“master/develop”模式,也就说有一个正式库、一个开发库。

正常的开发流程是:其他人只有develop的权限,仓库的所有者有master的管理权限。并且

2、将远程仓库进行本地化标识

输入  :git remote add + 名字 + SSH链接地址

以我的为例:

git remote add origin git@gitee.com:ZhengLink/zhenglintest.git

创建完成后,就是在本地为远程的仓库起了一个别名。

可以看到仓库后面有个main。意思就是说,现在在本地默认初始化了一个main的分支。一般而言,为了进行版本隔离,本地也应该有两个分支。main和dev(开发者分支,名字可以改变)。

因此我们需要创建一个开发者分支(dev),并使用这个分支,关联到远程仓库的develop的代码

3、获取develop数据

输入:

git pull origin develop

这句话的含义是,从仓库的develop中下载数据。执行效果如下:

默认情况是develop的分支数据保存到本地同名分支。因为本地现在还没有develop的分支,因此现在本地分支为未命名的分支。(就是界面上的[new branch])

若现在查看现在本地的分支信息,将会看到如下信息:

因此下一步,就是在本地创建一个分支,然后关联到远端的develop库。

4、创建分支并关联

输入:git checkout -b dev origin/develop

相当于1、在本地新建一个分支branch;2、这个分支(dev)关联到远端的develop分支了。效果如下:

此时再执行查看当前分支信息,就会出现

现在本地有两个分支:(dev和main),还有一个远端的分支。

现在就可以在文件夹中添加文件了。

5、提交文件

在文件夹中添加文件,然后将文件添加(add)到本地分支,然后提交(commit),然后推送到远端(push)。具体如下:

5.1、添加文件

此时运行git status

5.2、将文件添加到本地库

输入:git add -A  然后再看一下状态

5.3、提交文件

输入:git commit -m "你的修改备注",然后查看状态

5.4、上交文件

输入:git push -u origin dev:develop

意思是:本地的dev关联到develop,并将数据上交。-u只是绑定dev与origin/develop的关系。相当于配对。以后dev就与develop的绑定了

以后的提交,就不用了添加参数-u

只要是dev的分支,直接输入 git push origin即可。

5.5、最终效果

6、合并版本

在develop分支开发完成后,需要进行分支合并(就是将develop的代码,合并到master上)

主要命令如下:

1、确保使用develop分支

2、获取develop的最新代码

3、切换至master分支

4、使用merge合并代码

5、推送至master分支

使用如下命令,提交文件至服务器

//将文件夹内的文件添加到暂存区
git add -A

//提交到工作区
git commit -m "第一次提交"

//提交代码
git push origin

3、其他参考

下面的内容是原博客的内容。CSDN改版,导致板式全乱了

2.1 设定本地仓的路径:     

      mkdir  /f/Git/TianHe      说明:是指在本地F盘创建Git文件夹,并在Git中创建TianHe子文件夹,实际路径不存在,则会为你创建一个新的。

      cd  /f/Git/TianHe           说明:将创建的路径作为Git的cd

      pwd                              说明:查看一下有无创建成功。若成功会在显示路径信息[/f/Git/TianHe]

2.2 初始化

      git  init                      该命令会为在指定的路径中创建一个空仓。    

2.3 从网上下拉源码

     以ASP.NET源码为例:

git clone https://git01.codeplex.com/aspnetwebstack.git这样,就可以下拉源码了。如图所示:

2.4 git init与git clone的区别

git init 用于本地的git库的创建,先在本地建库,然后添加文件。这一步相当于源码的建立。

git clone 用于从网上下拉源码

3、追踪仓状态

       在路径下创建新的文档(例如:readme.txt)---注意,建议所有txt使用UTF-8编码。

      git add  readme.txt                                       说明:将文档添加到index中(即缓存中),实际就是和本地仓打招呼,“新来一小弟,名字是readme.txt,还请多关照啊”

      git commit  -m "你需要添加的注释"           说明:将文档添加到head中。即使是这一步,仍然没有提交到远程服务器中的仓。

      git  status                                                       说明:查看本地仓的状态

      git diff readme.txt                                          说明:查看本地仓中readme.txt中的版本差别(本地版本与commit之后的版本的差别)

3.2  回退的相关操作

      git log              说明:查看更新日记

      git  reset   --hard HEAD^            说明:回退至上一版本。  HEAD^^,回退至上上版本。 HEAD~100.回退至100个版本之前的版本。

      cat   readme.txt               说明:查看某一文件

      git   reset  --hard [commit id]        说明:回退至任意之前的版本

      git   reflog        说明:获取所有的日志记录,不管是否关机。

3.3 关于撤销文件

     撤销文件有两种情况。

    1、仅在本地工作区有修改,然后希望恢复至HEAD版本。

          git  checkout  -- readme.txt     说明:即将版本库中的文件覆盖本地文件。

    2、在本地已经修改,且已经使用git add 命令了。

         2.1 首先先撤销在缓存区中的内容,否则,使用git commit 可能会导致提交到版本库中

          git reset  HEAD  readme.txt

         2.2  再使用版本库中的文件覆盖工作区的文件

          git  checkout  -- readme.txt

  4 删除文件

    rm  test.txt        说明:删除本地工作区的文件

    若误删本地文件,则可以通过之前的  git checkout -- test.txt     命令恢复文件。

    若希望删除版本库中的文件:

    git  rm test.txt

    git  commit  -m "delete a test.txt file"

    4.1 有时希望删除已经提交至远程仓库的文件,则可以这么做:

         (1)、将文件全部拷贝至本地

                   git  pull

          (2)、使用删除命令,删除文件,并提交至本地仓库

                  git   rm   test.txt

                  git  commit  -m "delete the test.txt file"

           (3)、推送至某个分支下的远端仓库

                  git  push origin  dev  

                 ---此处的前提是:已经使用了   git  checkout  -b  dev  origin/dev,即将本地的dev分支与远程的dev分支相关联。

                     或者是:  git  branch  --set-upstream dev origin/dev   :类似远程分支的本地连接(或本地分支与远端分支进行关联)

5  git checkout -b dev origin/dev      说明:是指创建一个远程dev的本地dev分支。

    可能会出现如下问题:fatal:cannot update paths and switch to branch ‘origin/dev'

    解决方法:git pull     原因:本地没有改分支,因此需要将远程上的拉下来。

    git branch  -a    说明:是指查看本地所有的分支

6  多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

        如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

6.2 dev与master的merge问题整理。

      一般而言,在服务器上会有两个分支:master与dev。master用于发布正式版本,而dev用于开元人员的提交。如下图1所示:

alt="为空"

(图1)分支管理策略

     团队中应该声明,master分支只允许特定的某人执行merge操作,其他人的可以创建本地的分支,填写完成后使用 no-ff 命令将内容与origin/dev分支进行合并。

     合并的具体操作如下:

    【本地分支与origin/dev分支的合并】

6.2.1、创建本地分支

   git checkout -b am77

    

6.2.2、在本地工作目录添加文件,并将文件提交到本地仓

     

6.2.3、创建dev分支,并将本地的dev与远端的dev分支关联。

   git checkout -b dev origin/dev

     上一命令行是指:在本地创建一个新的分支dev,并关联远端的dev     【需注意】:前提条件是本地无dev分支。

     若本地已经有dev分支,却尚未关联远端的dev,则可以使用如下命令行:

  git branch --set-upstream dev origin/dev

6.2.4、切换分支,完成合并  

    git checkout dev

      

     进行合并

   git merge --no-ff -m "merge am77's files"  am77

    

6.2.5、提交代码,删除分支

     使用dev分支提交本地的代码,提交完成后,删除am77分支

   git push origin dev 

     

     删除am77分支

    

7 设置代理

    有时公司内网是有代理的,则需要为git设置代理,具体如下:

  git config --global http.proxy http://proxy.yourname.com:8080

    若需要密码:

  git config –-global http.proxy http://user:password@proxy.yourname.com:8080

    查看设定是否成功

  git config –-get –-global http.proxy

    删除代理

  git config --system (或 --global 或 --local) --unset http.proxy

   【需说明1】:设置了http代理,则使用

  git clone 

   命令时,只能使用  https方式,不能使用ssh方式。如下:

  git clone https://git.oschina.net/zhenglin/TianHe_Website.git

   若有ssh的代理实现方式,请告知。

 【需说明2】:此代理是通过Window下Git Bash实现的,Linux实现方式未知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值