Git命令提交项目代码

Git客户端安装

今天就结合`GitHub`,经过`Git`命令,来了解如何实现开源代码库以及版本控制
html

GitHub是一个面向开源及私有软件项目的托管平台,由于只支持Git 做为惟一的版本库格式进行托管因此咱们须要下载一个Git客户端软件,用来执行各类指令git

Git下载地址https://git-scm.com/github

下载完毕后,配置`path`环境变量,`E:\develop\git\Git\bin`(我本机的在E盘下)
app

`doc`命令行窗口输入`git`命令,若是出现以下的信息,说明安装成功,
工具

[html]  view plain  copy
 
  1. C:\Users\67334>git  
  2. usage: git [--version] [--help] [-C <path>] [-c name=value]  
  3.            [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]  
  4.            [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]  
  5.            [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]  
  6.            <command> [<args>]  
  7.   
  8. These are common Git commands used in various situations:  

点击鼠标右键,菜单栏会出现 `Git GUI` 和 `Git Bash`GUI: Graphical User Interface(用户图形界面)Bash:是Windows下的命令行工具
gitlab

版本存储仓库:url

[html]  view plain  copy
 
  1. 公共:  
  2.     - github   
  3.     - 码云  
  4. 本身搭建:  
  5.     - gitlab   

Git命

接下来我用`git`命令,来一步步实现GitHub发布项目,版本控制的功能
spa

一、首先在电脑上建立一个空文件夹,我为这个空文件夹起名叫demo,而后进入该文件夹首先在GIT终端执行,`git init` 指令,会在demo文件夹生成`.git`文件夹.net

二、在demo文件夹内建立一个a.txt文件,而后经过`git status` 查看,该指令做用是 列出修改过的(绿色标识)、新建立的(红色标识)、已经暂存但未提交的文件(白色标识)
命令行

三、而后经过`git add 某文件(git add . 添加所有)`添加刚才咱们新建的a.txt文件

四、而后经过`git commit -m "备注信息"`,提交本次内容

以上4步的操做效果截图以下:



 

五、咱们利用上述指令,在往demo文件夹中添加一个b.txt文件,而后经过`git log`查看咱们的操做记录,而后能够查询到咱们添加a.txt和b.txt的log日志,而后经过`git reset --hard b96f962d0f835e3114b6f51bf7c9bfe6125626e3`,去回退到咱们的操做节点,此时我回退到第一次添加文件节点,也就是demo文件夹只有一个a.txt文件,如下是git端的效果截图


 

六、此时查看`git log` 结果发现只有一条操做记录,也就是咱们添加的a.txt的记录,咱们以前进行的第二步操做呢?也就是添加的b.txt文件节点时,咱们如何回退到最后这个节点呢?咱们能够利用`git reflog`


七、此刻demo文件夹中的2个文件内容,a.txt文本以下:

[html]  view plain  copy
 
  1. 初始化内容  

b.txt文本内容以下:

[html]  view plain  copy
 
  1. 这是b文本内容  

咱们继续为b.txt添加以下记录信息

[html]  view plain  copy
 
  1. 咱们临时为b添加记录  

此刻b.txt文件内容以下:

[html]  view plain  copy
 
  1. 这是b文本内容  
  2. 咱们临时为b添加记录  

上述意思就是在更新`b.txt`文件内容,添加操做记录若是用到开发场景,咱们在**需求1**,然而因为工做须要,**需求1**须要暂且搁置,咱们须要作**需求2**,**需求1**代码须要砍掉,等咱们作完**需求2**,咱们继续须要获取咱们以前**需求1**的代码,咱们能够利用`git stash`命令,如下是该命令的含义

[html]  view plain  copy
 
  1. git stash             将当前工做区全部修改过的内容存储到“某个地方”,将工做区还原到当前版本未修改过的状态  
  2.                 git stash list        查看“某个地方”存储的全部记录  
  3.                 git stash clear     清空“某个地方”  
  4.                 git stash pop       将第一个记录从“某个地方”从新拿到工做区(可能有冲突)  
  5.                 git stash apply     编号, 将指定编号记录从“某个地方”从新拿到工做区(可能有冲突)   
  6.                 git stash drop      编号,删除指定编号的记录  

 

此次会有冲突,咱们须要解决冲突,便可

 

八、咱们能够经过`git branch` 查看咱们的项目全部分支,默认只有一个`master`主分支,咱们能够经过`git branch dev`(dev是咱们起的分支名)新建一个分支,名字是dev开发分支,而后经过`git checkout dev`切换到咱们新建的dev分支,咱们也能够经过`git checkout -b 分支名`一并实现建立、切换分支的功能

九、咱们切换到`dev`分支,经过`touch 文件名`建立一个文件,而后add、commit ,意思就是在dev分支上作一些修改,并保存在dev分支上,而后在切回master分支,咱们要作的就是将dev上更新的内容,也在master上作一样的修改,咱们能够用`git merge` 分支名,将dev上的更新内容,合并到master上另外删除分支使用`git branch -d 分支名`

十、利用`github`建立项目,会出现以下指令,须要在git终端输入建立生成项目,要添加一个新的远程仓库,能够指定一个简单的名字,以便未来引用,运行 git remote add [shortname] [url]:

经过`git remote add origin 和https://github.com/iyongfei/test.git`



 

十一、接下来咱们经过`git clone https://github.com/iyongfei/test.git`来`clone`下载咱们的`github`项目,咱们默认拉取的是`master`分支(默认分支能够在**github**设置其余分支)

而后根据之前的git指令,进行`git add .` 和 `git commit -m "备注信息"`,

注意注意,因为项目开发都是协同开发,咱们在接下来在提交代码以前,须要`git pull origin 分支`,拉取对应分支代码,而后若是有冲突解决冲突,而后在`git push origin 分支名`

ps:我以下的截图在提交代码时,为了简化操做,没有`git pull

 

十二、咱们还能够往`github`项目上添加新分支,咱们经过`git branch 分支`建立分支,经过`git checkout 分支`切换分支,(或者经过`git checkout -b 分支`,建立并切换分支),而后在添加、提交(我这里没有添加任何信息),最后`git push origin dev` 往github项目上添加新分支

 

1三、咱们还能够拉取其余分支的内容到本分支,好比我在`master`上添加内容,而后我在`dev`分支上去拉取`master`上的代码,而后在提交到对应的github分支`dev`上(我本地依然没有添加额外的内容)

 

1四、冲突如何产生?咱们如何解决冲突?当本身拉取了`dev`的代码,同事也拉取了`dev`的代码,同事先于我提交代码,而后本身也在本地修改了代码,若是修改了同一个文件,会出现冲突状况,再次拉取`dev`代码会失败,并且提交失败

 

解决方式一:先在本身本地`dev`,经过`git stash`暂存修改,而后`git pull 分支`代码,再而后`git stash pop` 合并代,解决冲突(删掉咱们不须要的代码),而后在提交代码

[html]  view plain  copy
 
  1. <<<<<<Updated upstream  
  2. aa为各个  
  3. bb额外分  
  4. =======  
  5. aac  
  6. bbd  
  7. >>>>>>> Stashed changes  

解决方式二:不利用`git stash`,利用`compare`对比软件,将有冲突的文件,剪切出来,而后拉取`dev`分支代码,就把github的`dev`分支最新代码,同步下来,而后在跟本身的剪切出来的代码段,进行对比,将本身的代码更新到同步下来的代码,而后在提交到github对应的分枝上


 

 

########################如下是项目中的截图########################

一、首先进入项目的主分支

二、Fork一份工程,当作本身的项目管理分支

三、在电脑上建立一个文件夹,先Clone一份本身工程的项目分支(xxx屏蔽公司信息)

git clone git@xxxx.gitlab.com:xxxxxx/SELand_Vertu

四、进入项目的二级目录进入git客户端,确认要pull分支

      git branch看看当前的分支

      git checkout -b develop  切换到develop分支,由于我要pull拉去develop分支上的项目

五、而后在将本身的项目分支同步项目主分支(咱们项目分支为develop分支)

git pull git@xxx.gitlab.com:xxx/SELand_Vertu develop

六、每次提交代码时候,须要先同步项目主分支代码

git status是哪些文件有所修改

git diff 能够查询所修改的代码

git add -A 增长本身所作的修改

git commit -a 提交全部修改的代码

git push origin develop 提交代码

 

七、最后在new merge request,提交给相应的负责人,进行merge代码

 

错误解决::::

若是某个同事提交代码,老大没有及时merge代码,本身也提交该文件的代码,那么老大merge代码会有冲突

会差生以下的错误提示:

Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

能够这样修改

一、git pull git@xxx.gitlab.com:xxx/SELand_Vertu develop先同步一下会出现以上的错误

二、pull会使用git merge致使冲突,须要将冲突的文件resolve掉 git add -u,

三、在项目中看看哪些代码是对方改的,哪些代码是本身修改的,在合并成一份最新的代码

四、git commit以后才能成功

相关文章
相关标签/搜索