Git操作说明
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操作说明的更多相关文章
- git 操作说明
第一步:代码提交到本地仓库 第二步:更新远程服务器代码到本地,如果有冲突需要优先解决,解决冲突后执行第一步操作 第三步:推送本地代码到远程服务器,可以使用source Tree 或者工具自带的配置gi ...
- Linux 文件管理命令语法、参数、实例全汇总(一)
命令:cat cat 命令用于连接文件并打印到标准输出设备上. 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName 参数 ...
- git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。
git diff 简易操作说明 先git log 查看commit ID, 记录你想要打的补丁的ID 比如说: git log commit 4ff35d800fa62123a28b7bda2a04e ...
- VS2015 Git使用教程——优化项目编辑日志
一.前言 公司项目中,修改日志管理是一件很繁琐的事情,而且项目维护时间长了,会遗留下各种有用或无用的日志,对于有代码洁癖的人来说,无疑是一种灾难. 1.公司日志记录结构: 2.Git日志记录结构: 二 ...
- Git工作流总结
引用自:https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 说明: 个人在学习Git工作流的过程中,从原有的 S ...
- 深入理解学习Git工作流
http://blog.csdn.net/hongchangfirst/article/list/3 //可以看看 http://blog.csdn.net/hongchangfirst/articl ...
- [转]深入理解学习GIT工作流
深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...
- git第一次提交代码到远程仓库
博客搬家了,本文新地址:http://www.zicheng.net/article/4 感谢支持 本操作说明是先有代码,后来创建git仓库,然后把本地代码提交到远程仓库的操作步骤: 1.初始化 在当 ...
- 来自 Github 的图形化 Git 使用教程
转载:http://www.linuxeden.com/html/news/20120628/126451.html 这是来自 Github 上对 Git 常用操作进行简短介绍以及可视化图形操作说明的 ...
随机推荐
- Orchard之Module开发
一:生成新项目 首先,要启动 Code Generation,参考<Orchard之生成新模板>. 其次,进入命令行,输入: codegen module Tminji.Requireme ...
- [No0000D9]删除指定文件夹.bat改命或合并文件
set /p 目录=目录,拖入= rd /s /q %目录% ::ren *.txt *.html ::copy /B *.html aaa.txt pause
- [No0000D8]rar合并到JPG.bat用图片隐藏文件
echo off cls echo 请拖入jpg图像文件后回车: set /p imagefile= echo 请拖入rar文件后回车: set /p rarfile= copy /b %imagef ...
- Java代理和动态代理机制分析和应用
本博文中项目代码已开源下载地址:GitHub Java代理和动态代理机制分析和应用 概述 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息 ...
- wfp(Application的运用)
1.Application中封装了wpf的一些常用的功能,如检查未经处理的异常,处理命令行参数等. 2.如何启动wpf程序: app.xaml可用于启动wpf的窗体.也可以不用这用方式.直接创建一个a ...
- 8 queen暴力解决法
很容易看出来,在每一行和每一列上有且只能有一个皇后,因此较为复杂的判断就是对角线了.维基百科的页面上有一个非常暴力但是写起来非常简单的解法: 1 2 3 4 5 6 7 8 from itertool ...
- 【未完待续】API接口
1.json传输 2.安全:权限 http://blog.csdn.net/linlzk/article/details/50748580. 比如:调用端有userId.psw.version.ti ...
- [development][dpdk][pktgen] 网卡收发包性能测试-详细数据
三层包测试 发包方式:192.168.20.205 发包工具:pktgen 发包网卡:i350 收包设备:1922.168.20.185 CPU:Intel(R) Xeon(R) CPU E5-262 ...
- SpringMVC 的使用映射路径 <mvc:resources >
以下是测试结果,可能存在纰漏,暂记录一下. 使用springMVC时,一般将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求 ...
- 转:HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)
原文地址:https://www.cnblogs.com/faunjoe88/p/7992319.html 主要内容: 1)put 疑问:如果两个key通过hash%Entry[].length得 ...