初始化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
选项下。
commit
和push
都和命令行差不多,这里不需要add
文件了。
push如果遇到下面的问题,说明你的代码落后于线上的代码,和别人修改了同一个位置,引起了冲突。先pull一下,然后选择要哪一份代码。
git的工作原理
工作区
在仓库文件夹里,git目录以外的内容。
版本库
.git目录,用于记录版本信息。包含下面内容 1.暂缓区(stage) 2.分支(master):git自动创建的第一个分支 3.HEAD指针:指向当前的分支