Git操作说明

1、将本地项目上传到GitHub

1)    首先在GitHub上注册帐户

2)    在GitHub上创建仓库

3)    Pc安装Git客户端(Git Bach)

4)    打开Git Bach进入到项目目录

  

5)    初始化项目为Git仓库:Git init命令

  会在项目目录,下生成一个.Git的隐藏文件夹,仓库初始化成功。

6)    将项目增加到暂存区:Git add .

注意命令git add . 后边的点代表,增加所有文件夹及文件;

也可以单独增加某个文件例如:git add redme.txt

7)    将本地仓库关联到远程GitHub

Git remote add xxxx https://xxxx.git  关联远程仓库

Git remote rm xxxx  删除远程仓库

首先在GitHub上查到一下远程仓库地址,这里以https的为例:

https://github.com/Isinopec/E_BUSINESS_WIN.git

    

使用命令进行关联:Git remote add 远程名称(自定义) 远程仓库地址

    

8)    提交本地代码git commit am “注释”

Git commit –m “first commit” 提交

Git status 查看是否文件未提交

    

9)    拉取GitHub项目到本地仓库

为什么要做这一步呢,不先pull拉取直接push推送,可能会出现错误

原因,是因为远程版本仓库,比本地要新。

    

Git pull business master命令

    

10) 推送本地代码到远程仓库

Git push business master   提交让输入用户名,密码验证

    

如果,还报第9步的错误,直接强行推送git push business master –f

    

上图推送成功,到GitHub上刷新看看;项目以上传到github库

    

11) 总结一下用到的命令:Git Bash进入到项目目录:

Git init 将项目初始化成git仓库

Git add . 将所有文件增加到暂存区

Git commit –m “commit” 提交所有文件到暂存区

Git status 查看未提交文件

Git remote add <远程名称> https://xxxxx.xxxx.git  关联远程和本地仓库

Git pull <远程名称> master 拉取远程仓库到本地合并,以保证本地最新

Git push <远程名称> master 或 git push <远程名称> master –f  推送本地到远程仓库,第一次提交可以在远程名称前加 –u 这样可以,自动提交到远程合并分支。

2、暂存区与工作区的区别

暂存区:就是项目录隐藏的.git文件夹,commit提交之后,会将更改存在暂存区

工作区:.git以外的项目为工作区。

3、 分支和合并

分支合并:程序新增一功能,为了不影响主程序,创建分支,在分支上开发,全部功能完成后,在进行合并到主分支。

命令:前提是进入到仓库目录

1)Git branch 显示所有分支,并且分支名称前带*星号的是当前分支

2)Git branch xxxx 创建分支xxxx

      

3)Git checkout xxxx 切换当前分支

从上图可以看出,当前分支为带*星号的master,那么我们要怎么切换到其它分支呢

需使用命令Git checkout add001 ,下图可以看出,当前分支以从主分支切换到了add001

      

切换分支,到底有什么作用呢,前边已经解释过,在分支上编辑代码,并不影响master主分支。只有当交分支合并到主分支的时候,主分支才会改变。

4)Git checkout –b xxxx创建并切换分支(此命令,相当于实现在第2和第3步两步命令)

Git checkout –b xxxx 创建一个新的分支xxxx并切换新分支为当前分支。相当于执行以下两个命令:

Git branch xxxx

Git checkout xxxx

      

5)Git branch –d xxxx删除xxxx分支

使用Git branch –d add002 删除名称为add002的分支;

另外提醒一下,当前分支是不能删除的。因为是checkout状态。

      

那么要怎么删除当前分支呢,转换一下思想,我把当前的分支切换了不就好了。

      

切换后,再删除add002,成功删除掉

      

小结:有一种情况,在新分支上开发了新代码,现在发现功能没有用,想直接把分支删除掉,于是使用命令:git branch –d xxxx;然后发现报错了,提示此分支还没有被合并。

删除不掉,那怎么办,强制删除呗,命令:git branch –D xxxx 强制删除,参数是-D是大写。

6)合并分支到master

当某个分支开发完毕,需要合并到主分支,需要合并分支。

Git merge xxxx 将名称为xxxx的分支,合并到当前分支

所以使用git merge xxxx合令时,要注意,这个命令是将某分支,合并到当前分支

我们要将分支合并到master主分支那么,需要切换当前分支为master

      

7)总结

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

分支使用基本原则:

1)首先master分支,是用来发布新版本的,不要在这个分支上干活

2)合并分支时,默认Git会选择fast forward模式,此模式下,合并后,删除分支

会丢掉分支信息。所以合并的时候可以加上参数—no—ff方式禁用掉fast forward模式

Git merge –no—ff  xxxx

4、 解决冲突

理想是美好的,现实是残酷的,合并也并不会一帆风顺,项目中的共同文件变化,合并时会产生冲突,这时怎么解决冲突呢?

执行完git merge xxxx产生冲突,可以使用git status命令,会告诉我们哪些文件冲突了,需要手动去解决。

5、 从远程仓库克隆到本地

多人协作开发,只需将远程代码克隆到本地就可以了。

前边只讲了,怎么把本地项目上传到GitHub,那么要把GitHub上的项目克隆到本地怎么办呢?我们需要使用以下命令。

前提:进入本地要存储仓库目录,执行命令

命令:Git clone https://github.com/Isinopec/E_BUSINESS_WIN.git

具体仓库地址怎么获取,前边说过了,这里就不再提了。

如下图,已经从GitHub,将代码克隆到了本地

  

小结:

1)Git支持https、ssh、原生态的git协议这里只讲了,https协议的地址;

2)当从远程克隆到本地git clone https://xxxxx.git时,其实本地的master和远程的master已经默认关联起来了,并默认远程名称为origin

使用git remote 或git remote –v显示详细信息

如果要推送分支git push origin master就可以将本地,推送到远程的master分支上。

6、 Git stash工作区暂存功能

命令:Git stash

什么时候会用到,这项功能呢,举例:

比如你正在开发某一功能,还没有开发完成,现在有一项新任务,要修复一个bug

那么怎么办呢,新建一个bug分支,但是当前分支,还没有提交,因为没有开发完成。创建新分支会出问题,因为工作区不是干净的。

那么就要引用Git stash命令来,暂存当前工作区。然后在创建新的分支来修复bug

完成bug修复后,切回到原来的分支,使用git status命令发现工作区是干净的,原来暂存的去哪里了。使用Git stash list命令查看。

要恢复原来的暂存分支内容两个办法:

1) 是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

Git stash apply switch@{0}  ;switch@{0}是通过 git stash list命令查到的暂存名称。

2)另一种方式是用git stash pop,恢复的同时把stash内容也删了

7、 分支打标签

为分支打上标签,标记某分支的功能,不至于在很久后,不知道分支是作什么用的。

命令:

Git checkout xxxx  切换到要打标签的分支

Git tag v1.0  为当前分支打上标签为v1.0

Git tag  查看所有标签

    

删除标签:

Git tag –d v2.0

    

小结:

本地标签不会主动推送到远程,因此安全操作,要推到远程使用命令:git push origin –tags  ;从远程删除标签命令:git push origin :refs/tags/v2.0

看远程删没删除标签,可以在GitHub上看

8、 Git常用命令

    

Git操作说明的更多相关文章

  1. git 操作说明

    第一步:代码提交到本地仓库 第二步:更新远程服务器代码到本地,如果有冲突需要优先解决,解决冲突后执行第一步操作 第三步:推送本地代码到远程服务器,可以使用source Tree 或者工具自带的配置gi ...

  2. Linux 文件管理命令语法、参数、实例全汇总(一)

    命令:cat   cat 命令用于连接文件并打印到标准输出设备上. 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName 参数 ...

  3. git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。

    git diff 简易操作说明 先git log 查看commit ID, 记录你想要打的补丁的ID 比如说: git log commit 4ff35d800fa62123a28b7bda2a04e ...

  4. VS2015 Git使用教程——优化项目编辑日志

    一.前言 公司项目中,修改日志管理是一件很繁琐的事情,而且项目维护时间长了,会遗留下各种有用或无用的日志,对于有代码洁癖的人来说,无疑是一种灾难. 1.公司日志记录结构: 2.Git日志记录结构: 二 ...

  5. Git工作流总结

    引用自:https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 说明: 个人在学习Git工作流的过程中,从原有的 S ...

  6. 深入理解学习Git工作流

    http://blog.csdn.net/hongchangfirst/article/list/3 //可以看看 http://blog.csdn.net/hongchangfirst/articl ...

  7. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  8. git第一次提交代码到远程仓库

    博客搬家了,本文新地址:http://www.zicheng.net/article/4 感谢支持 本操作说明是先有代码,后来创建git仓库,然后把本地代码提交到远程仓库的操作步骤: 1.初始化 在当 ...

  9. 来自 Github 的图形化 Git 使用教程

    转载:http://www.linuxeden.com/html/news/20120628/126451.html 这是来自 Github 上对 Git 常用操作进行简短介绍以及可视化图形操作说明的 ...

随机推荐

  1. python的代码缩进和冒号

    一般语言一样采用{}或者begin...end分隔代码块,而是python中,采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严 ...

  2. ubuntu下能ping通ssh不通的解决思路

    1.首先看看是否能ping通,如果ping不通可能就要考虑网线.路由等问题了: 2.看防火墙是否关闭,sshd是否开启 3.ssh -v 服务器的ip号,根据提示寻找可能的问题: 我的问题在这一步之后 ...

  3. [No0000DB]C# FtpClientHelper Ftp客户端上传下载重命名 类封装

    using System; using System.Diagnostics; using System.IO; using System.Text; using Shared; namespace ...

  4. React中ref的使用方法

    React中ref的使用方法 在react典型的数据流中,props传递是父子组件交互的唯一方式:通过传递一个新的props值来使子组件重新re-render,从而达到父子组件通信.当然,就像reac ...

  5. 【紫书】uva489 Hangman Judge 做了很久Orz

    题目链接:https://vjudge.net/problem/UVA-489 题意:给出两行字符串,第一行是标准答案,第二行是玩家猜的串.玩家每次猜一个,猜对一个,标准答案中所有该字符都算被猜到.猜 ...

  6. linux 之awk

    简介 awk是一个强大的文本分析工具,相对grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格 为默认分隔符将每行切片,切开的部分再 ...

  7. mysql与redis在各种情况下性能对比

    数据表结构 CREATE TABLE `jx_goods_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_name` varchar(100) ...

  8. flash cs4 如何新增自定义控件

    1. 新增控件脚本* import gfx.controls.CoreList; import gfx.core.UIComponent; import gfx.controls.CheckBox; ...

  9. python内置函数,lambda表达式,文件读写

    Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排 ...

  10. mysql分库 分表

    原文链接:http://www.jianshu.com/p/89311703b320 传统的分库分表传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库.分库分库的原因 首先, ...