创建 git 仓库
首先, 先在 github 网站注册账号
https://github.com
然后创建一个项目:Create a new repository
之后在在 Repository name 填入 ZXTabBarController(你的远程仓库名) ,其他保持默认设置,
点击”Create repository”按钮,就成功地创建了一个新的Git仓库:
github 链接并克隆到本地
打开终端进入你的文件目录
ssh-keygen -t rsa -C "zhouxihi@aliyun.com"
改为你在 github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。
成功的话会在~/下生成.ssh文件夹,
进去,打开 id_rsa.pub,复制里面的 key
vim /Users/jackey/.ssh/id_rsa.pub
复制里面的所有内容, 然后回到github网页选择setting
进入settings后选择SSH and GPG keys
选择New SSH Key
输入完title和key后选择Add SSH key按钮完成添加
现在回到终端, 测试下是否能连接到github服务器
ssh -T git@github.com
看到这样的提示就说明设置好了
apple@AppledeMacBook-Pro ~ % ssh -T git@github.com
Hi Angelsufeiya! You've successfully authenticated, but GitHub does not provide shell access.
提交本地文件到远程仓库
- 首先初始化本地仓库
git init
- 把文件添加到本地版本库中,使用命令git add 文件:添加到暂存区里面去,如果后面接小数点“.”,意为添加文件夹下的所有文件
git add .
- 用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明
git commit -m 'first upload'
- 添加远程仓库
git remote add origin git@github.com:zhouxihi/ZXTabBarController.git
- 推送文件到远程仓库
git push -u origin master
显示100%. done就可以了
bogon:ZXTabBarController jackey$ git push -u origin master
Counting objects: 57, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (51/51), done.
Writing objects: 100% (57/57), 86.20 KiB | 0 bytes/s, done.
Total 57 (delta 14), reused 0 (delta 0)
remote: Resolving deltas: 100% (14/14), done.
To git@github.com:zhouxihi/ZXTabBarController.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
以后每次有修改本地文件就只要下面三个步骤就可以推送到服务器了
/* 将文件添加到暂存区 */
apple@AppledeMacBook-Pro Linux % git add /Users/apple/Linux
/* 提交本次修改 */
apple@AppledeMacBook-Pro Linux % git commit -m "Linux"
[master 2c1f4af] Linux
8 files changed, 438 insertions(+), 3 deletions(-)
create mode 100755 Linux/hello
create mode 100644 Linux/hello.c
create mode 100755 Linux/test
create mode 100644 Linux/test.c
create mode 100644 Linux/vimrc
create mode 100644 Linux/wujidong
create mode 100644 Linux/wujidong.pub
/* 推送到远程仓库 */
apple@AppledeMacBook-Pro Linux % git push -u origin master
枚举对象: 14, 完成.
对象计数中: 100% (14/14), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (10/10), 完成.
写入对象中: 100% (11/11), 9.94 KiB | 4.97 MiB/s, 完成.
总共 11(差异 1),复用 0(差异 0),包复用 0
remote: Resolving deltas: 100% (1/1), done.
To github.com:Angelsufeiya/Linux.git
68f638a..2c1f4af master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。
git 常用操作
// 账号密码克隆远程项目
- git clone http://账号:密码@项目地址
// 查看当前状态
- git status
// 查看修改内容
- git diff
// 添加并提交
- git add .
- git commit -m ‘注释内容’
// 推送到远程分支
- git push origin 分支名
// 拉取远程代码(更新本地代码)
- git pull origin 分支名
// 查看历史提交
- git log
// 回退到某个版本
- git reset –hard 版本号
// 回退到历史版本后,想查看之前的版本
- git reflog
// 远程代码强制覆盖本地代码(三步走)
- git fetch –all
- git reset –hard origin/master
- git pull
// 本地代码强制覆盖远程代码
- git push origin 分支名 -f
// 切换分支
- git checkout 分支名
// 生成分支并切换到新分支
- git checkout -b 新分支名
// 主分支a合并分支b
- git checkout a
- git pull // 更新a分支代码
- git checkout b
- git pull // 更新b分支代码
- git merge a // b分支先合并a分支
- git checkout a
- git merge b // a 分支载合并b
如有不同见解,欢迎留言讨论~~