标签:
// 安装git
1.下载安装git
2. 验证是否成功,输入命令行。输出git版本表示git安装成功。
$ git --version
// 配置个人信息
》告诉git你是谁
$ git config user.name xxx
》告诉git怎么联系你
$ git config user.email xxxx@xxx.xx
>上面一种配置方式是一次性的配置, 会配置到被管理文件的.git文件夹下
>下面一种配置方式是一劳永逸的方式(配置信息会存储到整个电脑上):
$ git config --global user.name xxx
$ git config --global user.email xxxx@xxx.xx
// 如何学习git指令
>git是通过使用指南的方式告诉我们某一个指令如何使用
>这个指南其实是一个不可编辑的vim
Q退出指南
按空格下一页
control + B 上一页
/需要搜索的内容 可以进行搜索
// git常用指令
$ git init 新建一个“本地仓库”
$ git status 查看文件状态
$ git add 文件名 添加文件到“暂存区”
$ git add . 将当前文件夹下的所有新建或修改的文件一次性添加到代码库
》注意: git中的add和SVN中的add不太一样, SVN中只需要add一次, 而git中每次新建或者修改之后都需要重新add
$ git commit (文件名) 添加文件到”本地仓库“
注意:如果没有在commit后面加上 -m说明提交的修改信息, 会自动进入vim界面, 要求我们输入修改信息
按键盘上的 i 代表开始输入内容
输入完毕之后按 esc 然后按 :wq
如果以后在终端中提交最好在后面加上-m
$ git push origin master origin 为远端仓库的地址,master为你本地想推送的分支
$ git pull 获取远程仓库的更新,将命令行定位到当前分支
$ git remote add origin git@gitlabb:root/common.git 添加一个远程仓库命名为origin
// 分支操作
$ git branch testing 创建一个新的分支
>>运行git branch 命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中去
$ git checkout testing 切换到其他分支
$ git checkout -b iss53 新建并切换到该分支,运行git checkout 并加上 -b 参数
>>这相当于执行下面这两条命令:
$ git branch iss53
$ git checkout iss53
$ git merge hotfix 合并分支
$ git branch -d hotfix 删除分支
>>git branch 命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单
$ git rebase [主分支] [特性分支] 命令会先取出特性分支server,然后在主分支 master 上重演(衍合)
然后就可以快进主干分支 master 了:
$ git checkout master
$ git merge server
// 起别名
》注意: git默认没有简写指令
》注意: 不建议自定义简写指令
》git中的简写称之为起别名
$ git config alias.st status
$ git config alias.ci "commit -m"
>> 配置带颜色的log别名
$ git config --global alias.lg "log --color --graph --pretty=format:‘%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset‘ --abbrev-commit"
// 查看log
$ git log 文件名
$ git reflog 查看所有修改信息(所有版本)
》注意: git中的版本号是一个”40位“的哈希值, 而SVN中的版本号是一个递增的整数
》修改后未提交的重置
$ git checkout 文件名 回到当前版本,放弃所有没有提交的修改
$ git reset —hard HEAD 回退到上一次提交的版, 注意HEAD后面没有尖号^
》已经提交后的重置
$ git reset —hard HEAD^ 返回上一个版本
其中—hard代表强制重置
$ git reset —hard 版本号(只需要写前7位) 返回指定的版本
// 查看文件被修改的什么地方
$ git diff 文件名
》绿色代表新增,红色代表删除
在合并改动之前,也可以使用如下命令查看:
$ git diff <source_branch> <target_branch>
// 远程仓库
SVN需要一个单独的服务器
Git不需要: 文件中、U盘中、云上、github、OSChina...
1.新建git远程仓库
$ git init —bare
注意: 这个仓库仅仅是用于管理代码, 不参与开发
2.初始化项目
》2.1先克隆一份空的仓库到本地
$ git clone 公司远程仓库
》2.2忽略不需要加入版本控制器的文件以及文件夹
.gitignore
注意: 配置忽略文件只需要到github上搜索.gitignore拷贝别人写好的代码即可
配置.gitignore一定要在和.git隐藏文件夹同一级的目录下
# 将以下命令一次性粘贴到命令行中
--------------------------------------------------------------------------------
echo -e "# Xcode
#
build/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Pods/" > .gitignore
--------------------------------------------------------------------------------
》2.3生成好.gitignore文件之后, 还需要将.gitignore文件添加到版本控制
$ git add .gitignore
$ git commit .gitignore -m”配置忽略文件”
》2.4新建项目
》source control—>commit 将代码提交到本地仓库
》source control—>push 将代码提交到远程仓库
git中默认就会创建一个分支, 这个分支叫做origin/master, 相当于svn中的trunk
专业人员只需要在git仓库的hooks文件夹中写一些指令, 就可以完成自动测试(压力测试、集成测试、冒烟测试...)
》 和SVN一样, 如果服务器仓库的代码被修改了, 我们再提交代码也会报错。
fetch first == out of data
总结:
git和svn最大的区别
》1.git每次修改新增都需要add
》2.git每台电脑都有一个仓库
》3.git是先提交到本地仓库, 再提交到远程仓库
// 查看当前的远程库
$ git remote 查看当前配置有哪些远程仓库,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库
$ git remote -v (译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址
// 新人服务器搭建
1.新建一个新人服务器
2.初始化仓库
$ git init --bare
3.添加一个新的远程仓库
source control —> master —>config —>remotes —>add —> add remote
4.将经理最新的代码提交到新人服务器
5.经理分配新人服务器的地址给新人
// GIT的分支管理
》在本地代码库给项目打上一个标签
$ git tag -a v1.0 -m ‘Version 1.0’
》查看当前标签
$ git tag
注意: 此时此刻打上的这个标签仅仅是一个本地标签。(和服务器没有关系)
》将标签添推送到远程代码库中
$ git push origin v1.0
1.开发
2.发布
3.保存稳定版本
4.继续开发
5.出现bug
6.分配员工到分支上修复bug
>员工从服务器下载最新代码
》员工利用git checkout v1.0指令快速切换到1.0版本
》根据提示:开启一个新的分支开始修复代码
$ git checkout -b bug_fix
7.合并修复后的代码到主线
8.备份稳定版本
》查看远程分支
$ git branch -r
》删除远程分支
$ git branch -r -d origin/bugfix1.0
// 通过Xcode将代码提交到github上, 把仓库放在github上
=============================================================================
》1.注册一个github账号
》2.配置SSH Keys, 只有配置了SSH Keys才可以和github无缝衔接
》点击昵称来到个人主页
》 点击主页中的设置(setting)
》 点击SSH Keys
》点击 generating SSH keys
》1.检查本地的ssh keys
在“用户目录”下
$ ls -al ~/.ssh
2.如果文件夹下不存在,需要手动创建一个
$ mkdir .ssh
3.根据github的提示生成ssh keys
在.ssh目录下执行 ssh-keygen -t rsa -C "your_email@example.com”
输入完成之后连续按下回车, 直到出现特殊图形
4.生成完公钥和私钥之后输入
$ ls -la查看是否生成成功 id_rsa(私钥) id_rsa.pub(公钥)
5.根据提示获得公钥
$ pbcopy < ~/.ssh/id_rsa.pub
6.点击 setting —》 ssh key —>add ssh key
将刚才获取到得公钥添加进去
7.根据github提示, 验证公钥
验证成功网页上的灰色圆点会变成绿色
8.拷贝到公钥之后打开github主页
》点击仓库(Repositories)
》再点击new来到github创建仓库界面
9.通过github提供的地址下载一个空的仓库到本地
》创建一个新的项目到本地仓库文件夹中
》利用Xcode提交代码到github
》注意: 要求输入用户名密码时候, 输入的是github上显示的昵称而不是登录账号
=============================================================================
// 生成秘钥:
(1)首先检查电脑是否曾经生成过秘钥
$ cd ~/.ssh
若打开该文件夹为空,则表示没有生成过秘钥,进入第二步。(~表示根目录)
(2) 生成秘钥
$ ssh-keygen -t rsa -C "macbookpro"
命令要求输入密码,不用输,三个回车即可。
执行成功后,会在主目录.ssh路径下生成两个文件:id_rsa私钥文件;id_rsa.pub公钥文件;
在远程仓库gitlab上添加title和key,和本地的一致。title可以自己取一个容易区分的名字,key为id_rsa.pub中的内容(全部复制,可用cat id_rsa.pub命令打开)
=============================================================================
使用git进行源代码的管理在项目开发中非常重要,所以很有必要系统的学习一下. 在学习资料书的选择上,恐怕没有比这本书更好的了
https://git-scm.com/book/zh/v2
标签:
原文地址:http://www.cnblogs.com/holy-shit/p/5798970.html