Windows环境下Git使用方法,分支管理,冲突解决

Git本地操作

一、Git 用户信息配置

这里的name和email记得换成自己在Github上注册的! 

# 设置全局用户名和邮箱

$ git config --global user.name "xxx"

$ git config --global user.email "[email protected]"

二、Git的基本使用

1. 创建一个新仓库并初始化 git init 

git会把所有文件以及历史记录直接记录成一个文件夹保存在你的项目中。
创建一个新的仓库,首先要去到项目路径下,执行git init。
这时Git会创建一个隐藏的文件夹.git,所有的历史和配置信息都储存在其中。

  • 首先,选择你的项目所在存放的位置,创建一个空目录:并使用Git Bash进入该目录

  •   第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init

            

Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的。(不可手动修改这个目录里面的文件)如果你没有看到.git目录,那是因为这个目录默认是隐藏的。

2. 暂存文件 git add命令

在我们的firstGit目录下新建一个readme.md文件,内容随意

  • 第一步,用命令git add告诉Git,把文件添加到仓库:

git add 文件名  添加单独某一个文件到仓库

$ git add readme.md

git add . 添加所有修改的文件

$ git add .

    

执行上面的命令,没有任何显示,说明添加成功。

  • 第二步,用命令git commit告诉Git,把文件提交到仓库:

## 提交修改

$ git commit -m "init file"

git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。 

      

Git远程仓库

远程仓库地址:https://github.com/littlepan/firstGit.git
到目前为止,我们的操作都是在本地的。(只存在于.git文件中)为了能够协同开发,我们需要把代码部署到远程仓库服务器上。

1.链接远程仓库 – git remote add

远程仓库GitHub的地址为:https://github.com/littlepan/firstGit.git

把本地仓库链接到Github上,在命令行执行以下命令:

$ git remote add origin https://github.com/littlepan/firstGit.git

 

一个项目可以同时拥有好几个远程仓库,为了区分通常会起不同的名字。通常主要的远程仓库被称为origin。

2.上传到服务器 – git push

把本地的提交传送到服务器的动作叫做push。每次我们要提交修改到服务器上时,都会使用到git push。

git push命令有两个参数,远程仓库的名字,以及分支的名字:

$ git push -u origin master

取决于你使用的服务器,push过程中你可能需要验证身份(输入用户名、密码)

出现下面这个界面就表示ok了

3.克隆仓库 – git clone

其他人可以看到你放在Github上的开源项目,他们可以用git clone命令下载到本地。

$ git clone https://github.com/littlepan/firstGit.git

本地也会创建一个新的仓库,并自动将github上的版本设为远程仓库。 

4.从服务器上获得修改 – git pull

如果你更新了远程仓库上的内容,其他人可以通过git pull命令拉取你的变动:

#查看当前分支

$ git branch

#查看本地和远程的所有分支

$ git branch -a

#拉取远程提交内容并合并到当前工作区

$ git pull

分支

当你在做一个新功能的时候,最好是在一个独立的区域上开发(原始项目的拷贝),通常称之为分支。分支之间相互独立,并且拥有自己的历史记录,直到你决定把他们合并到一起。这样做的原因是:

已经可以运行的稳定版本的代码不会被破坏
不同的功能可以由不同开发者同时开发
开发者可以专注于自己的分支,不用担心被其他人破坏
在不确定哪个版本更好之前,同一个特性可以在不同的分支上创建多个版本,便于比较

1.创建新分支 – git branch

每一个仓库的默认分支都叫master, 创建新分支可以用git branch <name>命令:

$ git branch dev

#查看本地和远程的所有分支

$ git branch -a

创建了一个名为dev的新分支,它目前和master分支是一样的内容。

2.切换分支 – git checkout

使用git branch,可以查看分支状态:

 *号表示当前活跃分支为master,现在我们想在新分支上开发新的特性,使用git checkout切换分支。
有一个参数表示要切换到的分支。

$ git checkout dev

      

3.在新分支上修改代码并提交

  • 首先,我们修改firstGit项目中的index.html,并添加新的文件如home.html
  • 第二步,我们需要新修改的代码添加到仓库中

# 添加新修改的内容到本地

$ git add .

# 提交修改到本地

$ git commit -m "add home.html and update index.html"

## 推送到远程,因为现在远程还没有dev分支,所以需要set-upstream

## 这样,在远程仓库就有了dev分支,之后可以直接push

$ git push --set-upstream origin dev

这个过程可能会让你输入验证信息

 完成操作如下:

  • 第三步,将代码合并到master分支上

## devt解决后,把修改合并会master,并删除dev分支

## 切换到主分支

$ git checkout master 

## 把dev分支的内容合并到主分支master

$ git merge dev

 

此时代码master 分支和dev分支代码完全同步,如果需要删除dev分支,可以使用

##删除分支dev

$ git branch -d dev

此时本地的dev 分支被删除了,但是远程的并没有被删除,可以使用以下命令,删除远程的dev分支

## push

$ git push

## 删除远程分支

$ git push origin :dev

4. pull他人提交的代码以及冲突的解决

 

在我们完成了某项功能的修改,需要push的远程的时候,协作者可能已经提交了他们的修改,这时,我们需要先把最新的提交拉取下来,加入我们的修改,再重新提交上去。

 由于我们前面的dev分支被删除了,我们再远程新建一个分支名为dev,然后在本地建立分支拉去远程dev分支上的代码

#查看所有的分支,包含本地和远程的

$ git branch -a

 git branch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来

  •  首先,新建分支并切换到指定分支

$ git checkout -b dev origin/dev

# git checkout -b 本地分支名 origin/远程分支名

  • 第二步,我们使用另一个账号在远程dev分支上修改一些代码
  • 第三步,在本地的dev分支上修改一些代码,让本地和远程有一些冲突
  • 第四步,将本地的代码使用git add 和git commit提交到本地仓库

     

  • 第五步,尝试使用git push到远程dev分支

$ git push -u origin dev:dev

# git push <远程主机名> <本地分支名>:<远程分支名>

   

   push被驳回了,因为有其他人已经提交了更新

  • 第六步,拉取远程的代码

# 拉取远程dev分支的代码

$ git pull origin dev

#git pull origin 远程分支的名字

git尝试自动merge,但是失败了,所以需要我们手动merge。此时,git已经把可能冲突的地方都写进了文件

  • 修改index.html,修改好后,使用git add 和git commit 提交

$ git add .

$ git commit -m "resolve confict in index.html"
 

  • 最后,推送到远程分支即可

 $ git push -u  origin dev:dev

    

  • 此时就push成功了。
  • 剩下的就是合并分支啦。

$ git checkout master

$ git merge dev

$ git push

 

哇哦,大功告成啦!你真棒 ,加油哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章