Git介绍
1. 集中式
2. 分布式
SSH密钥生成
存在 https或 ssh 协议
https://git.oschina.net/ericbluce/hcxy112.git
[email protected]:ericbluce/hcxy112.git
官方网站
开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台
目前国内有很多公司会将公司的项目部署在 OSChina
与 GitHUB 的对比
1. 服务器在国内,速度更快
2. 免费账户同样可以建立 私有 项目,而 GitHUB 上要建立私有项目必须 付费 使用
注册账号
建议使用网易的邮箱,使用其他免费邮箱可能会收不到验证邮件
添加 SSH 公钥
开源中国帮助文档地址:https://git.oschina.net/oschina/git-osc/wikis/帮助#ssh-keys
1.进入终端,并输入以下命令
切换目录,MAC中目录的第一个字符如果是 `.` 表示改文件夹是隐藏文件夹
cd ~/.ssh
查看当前目录文件
$ ls
2.生成 RSA 密钥对
1> "" 中输入个人邮箱
2> 提示输入私钥文件名称,直接回车
3> 提示输入密码,可以随便输入,只要本次能够记住即可
ssh-keygen -t rsa -C "[email protected]"
3.查看公钥内容
cat id_rsa.pub
将公钥内容复制并粘贴至 https://git.oschina.net/profile/sshkeys
4.测试公钥
测试 SSH 连接
$ ssh -T git@git.oschina.net
终端提示 `Welcome to Git@OSC, ericbluce!` 说明连接成功
git常用命令
(0)打开本机隐藏文件夹命令
defaults write com.apple.finder AppleShowAllFiles -bool true
本地有没有 “.git” 来判断是否是git管理的项目
(1)设置全局git账号
git config --global "user.name” instant125
git config --global "user.email" [email protected]163.com
git config -l //查看当前电脑里的配置信息
(2)查看当前git项目的状态
git status
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
//已修改文件 未提交
modified: APPGit/ViewController.m
Untracked files:
(use "git add <file>..." to include in what will be committed)
APPGit.xcodeproj/xcuserdata/
//添加新的文件 没有授予git管理
(3)初始化本地仓库
git init .
(4)把当前目录下本地文件授予git管理
git add .
(5)把当前目录下的新增或者修改文件 提交到本地仓库
git commit . -m "初始化项目"
(6)返回到指定的版本
git reset —hard 3362e936c1a85f1dc02a2af050e3e81a8522b57a
(7)移除git管理项目的某个指定的目录
git rm -rf (指定的文件夹)
git初始化项目
克隆项目
git clone https://git.oschina.net/ericbluce/hcxy112.git
命令行执行
(1)在https://git.oschina.net/这个网站上注册个账号并且创建一个git项目
(2)手动添加
“.gitignore” 必须 在git add . 之前 添加到目录底下 (https://github.com/github/gitignore.git)
(3)克隆远程仓库到本地
git clone https://git.oschina.net/ericbluce/hcxy112.git
(4)添加项目进行管理
把新创建项目 放入 clone 文件夹底下 注意事项 :如果打开xcode 出现 “?”标示的文件 需要在目录执行
git add .
(5)初始化本地项目到服务器
git commit . -m “初始化”
git push
(6)熟练操作 文件的 删除 新增 修改
提交 到本地仓库
git commit -m “提交修改”
把本地仓库 的修改 同步到远程仓库(master)
git push
git分支合并
分支修改
git branch 查看项目当前有多少个分支
分支合并过程
(1)git checkout 切换分支 (xiaolidev)
(2)修改文件 之后 进行 git commit . -m “提交修改”
(3)切换 到 到目标分支 git checkout master
(4) 合并 分支修改代码 git merge xiaolidev
(5)同步远程仓库(master) git push (git push origin master 提交到指定的分支)
举例
分支 master
分支 develop
分支 xiaolidev
master 上线环境 是 工程上线 的 一个代码管理分支 ===> 运营人员 发布者 测试
develop 生产环境 所有开发者 上传代码的分支 ===> 项目经理 产品经理 测试
xiaolidev 个人开发者 ===> 开发者 xiaozhaodev 个人开发者 ===> 开发者
开发流程 xiaodev ==> develop ==> master
上班开始写代码之前
在 ".git"隐藏文件的所在目录 进行"git pull"
下班之前
在 ".git"隐藏文件的所在目录 进行git commit . -m "提交修改"
执行 git push
git init .
把一个空的工程 初始化成 本地仓库
注意点 : 不带 远程仓库地址信息 和 用户信息
如何做?
输入命令:cd 项目文件夹 输入命令:git remote add origin
https://git.oschina.net/ericbluce/GPProject.git 输入命令:git pull -u
origin master //从[email protected] 上拉取项目 输入命令:git push -u origin master //提交项目
强制push本地代码或者文件到服务器 git push -f -u origin master
git clone https://git.oschina.net/ericbluce/GPProject.git
把远程仓库 克隆一份到本地
注意点 带有 远程仓库地址信息 和 用户信息
gitignore文件的添加
- 新建项目
- 克隆项目
**切换至项目目录**
cd 项目目录
**克隆项目,地址可以在项目首页复制**
git clone [email protected].oschina.net:xxx/ProjectName.git
- 添加 gitignore
~/dev/github/gitignore/ 是保存 gitignore 的目录
cp ~/dev/github/gitignore/Swift.gitignore .gitignore
- 提示:
从 https://github.com/github/gitignore 获取最新版本的 gitignore 文件
添加 .gitignore 文件之后,每次提交时不会将个人的项目设置信息(例如:末次打开的文件,调试断点等)提交到服务器,在团队开发中非常重要
分支问题
1 查看远程分支
git branch -a
2.查看本地分支
git branch
3 创建本地分支
git branch 分支名
4.把分支推到远程分支
创建分支 git branch test2
切换分支 git checkout test2
提交分支 git push origin test2
5 删除本地分支
git branch -d xxxxx
6 删除远程分支
git push origin :branch-name
git push origin :test1
下载最新版本并merge到本地
git pull origin master
远程获取最新的版本到本地 test分支上 之后 再进行比较合并
git fetch origin master:tmp
git diff tmp
git merge tmp