Git使用教程

git是一款非常好用的版本控制工具,已经有不少的企业开始从svn向git进行转变。

Posted by yasin on September 15, 2017

初始化git

cd 目标文件夹
git init

配置用户名和邮箱

git config user.name "用户名"
git config user.email "邮箱"

//给git配置全局的用户名和邮箱
git config --global user.name "用户名"
git config --global user.email "邮箱"

查看git状态

git status

红色表示添加过或者修改过,但是暂未添加到暂缓区。 添加过的文件和修改过得文件都需要再次添加到暂缓区。

添加到暂缓区(unstage)

git add 文件名	//添加指定的文件到暂缓区
git add .	//将所有未加到暂缓区的内容添加到暂缓区

提交到本地版本库

git commit -m "注释" //提交到HEAD指向的当前分支

给命令起别名

git config alias.st "status"		//给status命令起别名为st

git config --global alias.st "status"	//起全局别名

删除文件

git rm 文件名

查看版本信息

git log		//版本是由sha1算法生成的40哈希值
git reflog	//包含了所有版本回退的操作

回退到当前版本

用于本地修改了代码,还没有提交

git reset --hard HEAD   	//回到当前版本
git reset --hard HEAD^  	//回到上一个版本
git reset --hard HEAD^^ 	//回到上两个版本
git reset --hard HEAD~100	//回到前100个版本
git reset --hard 版本号		//回到版本号对应的版本

推送本地仓库到远程仓库

git push
git push -f //强制上传,用于版本回退时,远程代码超前于我当前代码的时候

Xcode提供的同样功能 Source Control -> Discard All Changes…

本地文件夹做共享版本库

git init --bare

将共享版本库的内容下载到本地

git clone

创建忽略文件

touch .gitignore

.gitignore常用的忽略是别人写好的,到里这里下载。

添加tag标签

git tag -a weibo1.0 -m "注释" //添加tag

###查看现有标签

git tag

上传tag标签

git push origin weibo1.0

切换标签

git checkout weibo1.0

创建分支并切换到分支

git checkout -b 分支名

查看分支

git branch 				//查看当前在哪个分支
git branch -r 				//查看本地版本库的分支

删除分支

git branch -d 分支名		//删除本地分支
git branch -r -d origin/分支名  	//删除本地版本库的分支
git push origin --delete 分支名

合并分支

从修复的tag上pull代码

版本备份

一、1.0版本开发完毕,对1.0版本添加标签。

git tag -a 标签名 -m "注释"

二、将标签push到远端仓库。

git push origin 标签名

三、开始2.0版本开发。

四、发现1.0版本有Bug。创建一个文件夹,用于修复Bug,将远端所有代码clone。

cd 新建文件夹
git clone

五、将新文件夹的代码转为1.0标签,创建分支,并切换分支。

git checkout 1.0版本标签 //将代码转到1.0版本
git checkout -b 新分支名 //创建新分支,并切换到新分支

六、在分支中修复Bug,修复好的版本打上tag,上传到远端。

git tag -a 修改Bug后标签1.1 -m "注释"
git push origin 上面添加的标签

七、和正在开发的2.0版本合并。

从新分支拉取代码
Source Control->pull->新分支名

八、删除分支。

git branch 				//查看当前在哪个分支
git branch -r 				//查看本地版本库的分支
git checkout master			//先切换回主分支
git branch -d 分支名			//删除本地分支
git branch -r -d origin/分支名  		//删除本地版本库的分支
git push origin --delete 分支名 		//删除共享版本库分支

使用Xcode进行版本控制

Xcode的版本控制功能在工具栏Source Control选项下。 commitpush都和命令行差不多,这里不需要add文件了。 push如果遇到下面的问题,说明你的代码落后于线上的代码,和别人修改了同一个位置,引起了冲突。先pull一下,然后选择要哪一份代码。 git代码冲突

git的工作原理

工作区

在仓库文件夹里,git目录以外的内容。

版本库

.git目录,用于记录版本信息。包含下面内容 1.暂缓区(stage) 2.分支(master):git自动创建的第一个分支 3.HEAD指针:指向当前的分支