git开发流程、常用命令及工具、TortoiseGit使用及常见问题
根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支。
一、开发流程
- 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上branch一个新的本地分支xname(或者branch一个已有的远程分支),然后checkout切换到这个本地分支上,开始开发;
- 开发过程中可以不断的commit到本地,可以分阶段做版本标记(俗称打tag);
- 开发完成之后,把本地分支xname ,push origin到远程分支xname上;(也可以push origin v0.1.2 把某个本地tag推送到服务器上)
- 远程分支xname和master合并。
二、常用命令
安装完成git之后,在文件夹右键菜单可以找到git bash命令行工具。也可以配置下环境变量使用windows的cmd命令行工具。
windows的cmd工具,配置一下之后,我觉得还蛮好用的。
(找到git的安装目录,然后系统环境变量path添加一个“D:\Program Files\Git\cmd”,命令行就可以运行git命令了)
进入目录
cd e:
cd cs
返回根目录
cd ../
列出本目录下文件夹
ls
当前下创建文件夹
mkdir
删除文件夹
rd xx
删除文件
del xx
————————以下为git命令——————————
查看本机配置
git config --list
git基本配置
http://magicalboy.com/git-configuration/
配置用户信息
$ git config --global user.name "xxx"
$ git config --global user.email xx@xx.com
创建本机key
ssh-keygen -t rsa -C “xx@xx.com” (默认会在C/user/..下面创建一个.ssh的文件夹,内有一个公钥文件和一个私钥文件,公钥要自己复制放到服务器上)
下载远程master代码
git clone git@xxx.git
拉取远端某分支代码
git pull origin xname
列出所有本地分支
git branch
列出远端分支
git branch -r
列出本地+远端分支
git branch -a
创建分支
git branch xname
切换分支
git checkout xname
创建并切换分支
git checkout -b xname
进入分支查看分支的改动
git status
GUI查看当前分支的修改
gitk
提交所有修改到本地
git commit -a -m "注释内容,必须要有"
(如果有新增加的文件,需要先add)
提交修改到远程分支
$ git push origin xname:xname
删除已经合并过的本地分支
git branch -d xname
强制删除某个本地分支
git branch -D xname
删除远程分支
git push origin :xname
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
等同于
$ git push origin --delete xname
列出所有tag
git tag
打tag
git tag -a tagName -m "注释"
将tag提交到服务器
git push origin v0.1.2(对应到小乌龟上就是push的时候,把Include tags勾上)
将本地所有tag提交到服务器
git push origin --tags
三、git可视化工具
git hash的乱码搞得我非常的恶心,装了一个小乌龟git,TortoiseGit,用了两天之后发现,贼好用,强烈推荐大家使用。
举例:删除某个远程分支。
还是按照原来那句删除远程分支的命令行的思路
git没有删除远程分支的命令,可以用push一个空分支来实现删除的目的
那 对应到小乌龟上 就是这样啦

---------------------------------------------------------------------------
四、git小乌龟和git bash如何同时使用的问题
因为在交叉使用中出现了问题,排查之后发现git小乌龟和git bash命令行工具,他们使用的密钥不是一个类型的。详细可以参考这个:http://zengrong.net/post/1722.htm
也就是说,如果想同时使用这两个工具的话,需要分别为他们创建一对密钥。
git bash:用上面列的命令可以生成公钥和私钥;
TortoiseGit:需要使用它自己的puttygen工具生成一对密钥;详细可以参考这个:http://jingyan.baidu.com/article/63f236280f7e750209ab3d60.html
如果参照教程还是有问题,需要在git bash中git config --list 查看一下"remote.origin.puttykeyfile"的值是否和刚才用puttygen生成的一致。
五、git小乌龟在win8系统下git clone load puttykey 不可用
本来自认为自己已经完全掌握小乌龟的使用了,没想到今天的实习生来了之后,又出现一个新问题,就是他的win8系统,clone代码的时候, clone load puttykey 这个选项不可用。百度了一下之后,发现原来是git小乌龟没有找到ssh client,需要在git setting-network里指定一下ssh client的程序位置。
如下:Settings > Network > SSH:SSH Client = C:\Program Files (x86)\TortoiseGit\bin\TortoiseGitPLink.exe
此问题参考:http://blog.snsgou.com/post-58.html
git开发流程、常用命令及工具、TortoiseGit使用及常见问题的更多相关文章
- git开发中常用命令
项目代码克隆岛本地 git clone 项目地址 #如:git clone http://cngit.fir.ai/data_service/distributedstorage.git 克隆指定分支 ...
- Git安装以及常用命令(图文详解)
**Git安装以及常用命令** 1.下载安装Git,傻瓜式安装相信大家都会. 官网下载地址:[https://git-scm.com/downloads] 2.Git基本操作 (1)git --ver ...
- Git的一些常用命令
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 简单的说就是托管代码的便于多人开发的管理系统. 二.Git的一些命令,我详细的说一下 我是基于github给大家说一下git的一些常 ...
- Android开发调试常用命令列表
Android开发调试常用命令列表 adb命令 am am start -n com.iflytek.autofly.account/.ui.MainActivity am start -n com. ...
- 正确的git开发流程
正确的git开发流程 第一步 在github中创建一个新的仓库,这时候项目是空的,而且只有一个master分支 第二步 第一个开发人员进来了,他在本地创建一个develop分支,并且提交到远程 git ...
- Linux服务器上监控网络带宽的18个常用命令和工具
一.如何查看CentOS的网络带宽出口 检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看. ...
- FastAdmin 插件的 Git 开发流程(简明)
FastAdmin 插件的 Git 开发流程(简明) cms zip 安装 包安装 删除 addons 里的 cms 使用 mklink 软链接到 cms 插件 Git 仓库 修改 cms 插件 gi ...
- Git Bash Here常用命令以及使用步骤
1.首先,要clone项目代码: git clone 链接地址 2.更新代码: git pull 3.添加修改过的文件.文件夹: git add 修改过的文件,文件夹 4.提交并注释: git com ...
- 开发环境之git:团队协作git工作流与常用命令
此篇文章只是一篇傻瓜式的,记录工作中比较规范且常见的一个git工作流需要用到的命令,让你可以快速的开始工作.而不是一些长篇大论的理论知识,如果你有用过sourcetree或者其它图形化工具,结合你正在 ...
随机推荐
- phpstudy虚拟机配置
PHPStudy是一个常用的PHP本地环境搭建的一个程序包,方便实用.对学习PHP的新手来说, WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事.因此无论你是新手还是老手,该程序包 ...
- siteserver cms分页
<stl:pageContents pageNum="10" cellpadding="2" cellspacing="2"> ...
- @Transient注解----Hiberbate
@Transient表示该属性并非一个到数据库表的字段的映射,将会忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic Exa ...
- GPRS 接入外网的过程
请问GPRS模块与Internet上主机的连接.数据传输过程 虽然按照GPRS模块的说明文档能够通过内嵌TCP/IP实现数据的传输,但是对GPRS模块和主机之间的连接关系了解得不是很多.有谁可以介绍一 ...
- java 多线程 继承Thread和实现Runnable的区别
1)继承Thread: public class ThreadTest extends Thread { private int count; private String name; public ...
- ListView.setAdapter(adapter);空指针异常的解决的总结
报空指针异常一般的情况: 1,没有找到布局文件的ID 检验是不是id重复或者写错了 2.控件没有实例化 3.没有找到布局文件的id,要看看是不是加载了布局了,必须加载了对应的布局才能找到对应布局下的 ...
- Python黑帽编程 3.1 ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
- MySQL 复制表结构
200 ? "200px" : this.width)!important;} --> 介绍 有时候我们需要原封不动的复制一张表的表结构来生成一张新表,MYSQL提供了两种便 ...
- [每日电路图] 10、两种MOS管的典型开关电路
下图是两种MOS管的典型应用:其中第一种NMOS管为高电平导通,低电平截断,Drain端接后面电路的接地端:第二种为PMOS管典型开关电路,为高电平断开,低电平导通,Drain端接后面电路的VCC端. ...
- VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)
VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...