Git

来自tomtalk
Tom讨论 | 贡献2016年11月17日 (四) 02:00的版本 Git flow工作流

跳转至: 导航搜索

《Pro Git》网页版

https://git-scm.com/book/zh/v2

Git flow工作流

[/uploads/e1cc9546f886773e0a3e344cf3ad80fa.png]

初始化git flow,它会问你一系列的问题,蛋定!尽量使用它的默认值就好了。

$ git flow init   
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []

开发流程小结:

git flow feature start xxx.1.0 (它会基于develop开一个分支,用于功能开发)
git flow release start xxx.1.2 (它会基于develop开一个分支,用于提测和bug修复)
git flow hotfix start xxx.1.2 (它会基于master开一个分支,用于线上bug紧急修复)
...
git flow feature finish xxx.1.0 (它会merge到develop上)
git flow release finish xxx.1.2(它会merge回master和develop)
git flow hotfix finish xxx.1.3(它会merge回master和develop)

Master: 最近发布到生产环境的代码。

Hotfix: 热修复分支,线上项目出现debug修复时使用。

Release: 测试分支,下一个发布版本由此诞生,debug的聚集地。

Develop: 主开发分支,功能分支由此检出,功能分支的最终归宿。

Feature: 功能分支。

http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html git-flow 备忘清单

http://blog.csdn.net/liubo2012/article/details/8515065 git-flow图解

http://www.bkjia.com/Javabc/1156134.html git flow的使用

gitlab

配置Git支持大小写敏感

  1. 在新建代码文件时,不注意把文件名应该小小写搞错了
  2. 文件已经push到远程了
  3. 在windows下面将文件名字改为全小写

改好后,在Git中没有任何反应,使用git status时,如果遇到下面情况,说明GIT大小写不敏感, 如何解决Git的大小不敏感问题呢?

  1. 设置Git大小写敏感 ignorecase = false
  2. 先删除文件,再添加进去
  3. 使用git的rename命令

.config

user]
	name = tecshuttle
	email = tecshuttle@gmail.com
[core]
	autocrlf = true
        ignorecase = false
[credential]    
        helper = store

TortoiseGit保存用户名密码的方法

  1. Windows中添加一个HOME环境变量,值为%USERPROFILE%
  2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的文件
  3. 用记事本打开_netrc文件,输入Git服务器名、用户名、密码,并保存:
machine github.com    #git服务器名称
login tom.xie         #git帐号
password tecshuttle   #git密码

让TortoiseGit记住帐号密码

在"C:\Documents and Settings\Administrator\.gitconfig" 文件 或 "项目/.git/config"文件 里增加两行(windows用wincred):

[credential]    
    helper = store
[credential]    
    helper = wincred

帐号密码信息会保存在 C:\Documents and Settings\Administrator\.git-credentials里。

Git基本常用命令

git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
 
git add XX       把xx文件添加到暂存区去。
 
git diff  XX      查看XX文件修改了那些内容
 
git log          查看历史记录
 
git reset  –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset –hard HEAD~100 )
 
cat XX         查看XX文件内容
 
git reflog       查看历史记录的版本号id
 
git checkout — XX  把XX文件在工作区的修改全部撤销。
 
git rm XX          删除XX文件
 
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
 
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
 
git clone https://github.com/tugenhua0707/testgit  从远程库中克隆
 
git checkout –b dev  创建dev分支 并切换到dev分支上
 
git merge dev    在当前的分支上合并dev分支
 
git branch –d dev 删除dev分支
 
git branch name  创建分支
 
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
 
git stash list 查看所有被隐藏的文件列表
 
git stash apply 恢复被隐藏的文件,但是内容不删除
 
git stash drop 删除文件
 
git stash pop 恢复文件的同时 也删除文件
 
git remote 查看远程库的信息
 
git remote –v 查看远程库的详细信息
 
git push origin master  Git会把master分支推送到远程库对应的远程分支上

Git使用基础篇

http://www.open-open.com/lib/view/open1332904495999.html

git clone https://github.com/tecshuttle/zenho_xs.git zenho_xs
git pull
git push
 
git diff application/views/products/detail.php
git commit  -m 'product detail' application/views/products/detail.php  #提交单个文件
 
git add -A                 #添加所有未加入版本控件的文件
 
git stash                  #取消本地修改。新加的文件还在,但所有的修改都会抹去。
git checkout xxxxx(文件名) #取消对某文件的修改。
 
git branch                 #查看当前所有的分支
git checkout branchname    #切换分支

github Contributions Calendar不记录的问题

右键 settings -> Git -> User Info 改邮件名,与github帐户一致就好了。

Install git on CentOS

I wanted to put git on one of my CentOS 5.5 servers. Following the links to download the source led to a web page advising to install with yum. But when I tried,

# yum install git
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.usc.edu
* extras: mirrors.usc.edu
* updates: mirrors.usc.edu
Setting up Install Process
No package git available.
Nothing to do

frustrating! Here’s the solution, add the webtatic repository first:

# Add the repository
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
 
# Install the latest version of git
yum install --enablerepo=webtatic git-all

a lot of dependencies were installed and updated. I didn’t need the workaround mentioned, but in case someone else might: To work around Missing Dependency: perl(Git) errors:

yum install --enablerepo=webtatic --disableexcludes=main git-all

git安装

wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz 
tar xzvf git-latest.tar.gz 
cd git-{date} 
./configure
make && make install


安装错误处理

git: error while loading shared libraries: libiconv.so.2:

这是由于无法加载libiconv.so.2库文件。解决方法:

echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig

Linux的XZ压缩

http://blog.csdn.net/wendaotaoa/article/details/8147496