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. vue 打包的项目当背景图路径错误

    当背景图路径错误时: 在build/utils.js中添加或更改这句话:publicPath: '../../',

  2. 分布式事务之TCC服务设计和实现注意事项

    分布式事务之TCC服务设计和实现注意事项-云栖社区-阿里云 https://yq.aliyun.com/articles/609854 分布式事务之TCC事务丶一个站在Java后端设计之路的男青年个人 ...

  3. Ubuntu16.04开机蓝屏问题解决

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  4. [Day4]Switch语句、数组、二维数组

    1.选择结构switch (1)格式 switch (表达式){ case 目标值1: 执行语句1; break; case 目标值2: 执行语句2; break; ...... case 目标值n: ...

  5. Python生成器表达式

    https://www.cnblogs.com/liu-shuai/p/6098218.html 简介: 生成器表达式并不真正的创建数字列表,而是返回一个生成器对象,此对象在每次计算出一个条目后,把这 ...

  6. 将DOS格式的shell脚本转为UNIX格式

    shell脚本是UNIX格式,在修改其中内容时,务必保持UNIX格式.UE编辑器打开时,会询问是否转为DOS格式,请点否.如果修改完成后,不能确认是否为DOS格式,可以使用UE文件菜单下的Conver ...

  7. 内部排序->交换排序->起泡排序

    文字描述 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(L.r[1].key>L.r[2].key),则将两个记录交换位置,然后比较第二个记录和第三个记录的关键字.依次类推,直 ...

  8. Celery的Web监控管理--Flower

    Flower是Celery的一个实时监控和管理Web界面工具,目前仍在活跃的开发之中,但已经是一个很重要的可用工具了.这是推荐使用的Celery监控工具. 1,安装依赖 pip install flo ...

  9. sql-server数据库常用语句

    查看所有数据库名 select name from master..Sysdatabases order by name; 查看当前数据所有表 select name from sysobjects ...

  10. RestFramework——API设计规范

    what's the RESTful RestFramework是一个能快速为我们提供API接口,方便我们编程的框架.API是后端编程人员写的,为了让前端拿数据的一个接口,通常就是以url的形式存在. ...