-
开github,注册一个账号。
-
创建ssh key,在C:\用户\用户名.ssh目录,如果没有id_rsa文件和id_rsa.pub文件,就需要创建。 2-1. ssh-keygen -t rsa -C “154580967@qq.com” 2-2. 一路默认
-
登录GitHub,打开“Account settings”,“SSH Keys”页面: 3-1. 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容: 3-2. 点“Add Key”,就应该看到已经添加的Key: [在GitHub上免费托管的Git仓库,任何人都可以看到。所以,不要把敏感信息放进去。]
从本地同步到远程库
已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步
步骤:
-
登录GitHub,在右上角找到“Create a new repo”按钮,创建一个新的仓库
-
在Repository name填入frankGit,其他默认,点击“Create repository”,就成功地创建了一个新的Git仓库
-
命令行:git remote add origin git@github.com:自己的帐户名/frankGit.git //origin是自定义远程库的名字 [git 解决fatal: Not a git repository:git init]
-
命令行:git push -u origin master //将当前分支推送到远程,并将本地master和远程master关联起来 [推送前确保本地仓库是有东西的,commit过的]
-
命令行:git push origin master //把本地master分支的最新修改推送至GitHub
从远程库克隆到本地
-
登录GitHub,创建一个新的仓库,名字叫gitskills
-
勾选Initialize this repository with a README,自动创建README.md文件。
-
命令行:git clone git@github.com:自己的帐户名/gitskills.git [可让多人从同一个仓库下载到自己的本地进行开发]
分支管理
分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。 默认分支:master
使用:
-
命令行:git branch dev //创建分支dev
-
命令行:git checkout dev //切换到dev分支
-
命令行:git checkout -b dev //创建分支dev,并切换到dev分支
-
命令行:git branch //查看当前分支,前面带*号的就是当前分支
-
命令行:git add readme.md
git commit -m "本次是从dev分支提交的"
-
命令行:git checkout master //切换回master
-
命令行:vi readme.md //再查看文件,会发现文件中刚添加的内容不存在了。
-
命令行:git merge dev //合并指定分支到当前分支
-
命令行:git branch -d dev //删除dev分支
-
命令行:git branch //再查看,dev分支就没有了
-
如果两个分支同时修改一个文件,提交。再合并,就会出现冲突。
-
只需要将冲突的文件打开,删除标记,重新add和commit
-
命令行:git branch -d dev
-
命令行:git log —graph //查看分支合并图
强行删除分支(feature)
-
命令行:git checkout -b feature //创建新分支并切换
-
命令行:vi work.js //创建work.js文件
-
命令行:git add work.js //添加到缓存区
-
命令行:git commit -m “添加一个新的分支咯” //添加到版本库一个新分支
-
命令行:git checkout dev //切换回dev分支
-
命令行:git branch -d feature //还未合并就要马上删除feature分支
-
命令行:git branch -D feature //必须强行删除才可以
多人协作
-
命令行:git remote //查看远程库的信息
-
命令行:git remote -v //显示更详细的远程库信息
-
命令行:git push origin master //把master分支上的所有本地提交推送到远程库
-
命令行:git push origin dev //推送dev分支到远程库 强制推送:git push -u origin dev -f
-
当自己和伙伴提交有冲突时,使用git pull把最新的提交从远程库下载下来,在本地合并,再推送。
命令行:git branch --set-upstream dev origin/dev //指定本地dev分支与远程origin/dev分支的链接 命令行:git pull --rebase origin master
-
命令行:git add readme.md
-
命令行:git commit -m “合并后再提交”
工作流程
[repository-点击settings-选择collaborators-搜索框中搜索合作者账号然后add,然后给合作者发确认邮件] [必须在SSH中添加合作者的pub.key]
-
克隆到本地环境
-
修改文件先在本地进行提交
-
用git push origin branch-name推送自己的修改;
-
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull origin branch-name 试图合并;
-
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
-
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建, 用命令git branch —set-upstream branch-name origin/branch-name。
-
git 出现 fatal: refusing to merge unrelated histories 错误,其实这个问题是因为 两个 根本不相干的 git 库 git pull origin master —allow-unrelated-histories 把两段不相干的 分支进行强行合并 [master:主分支要时刻与远程同步] [dev:开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步] [bug:本地修复bug记录,不需要推送到远程] [feature:取决于你是否和你的小伙伴合作在上面开发]
常用的Linux命令
-
命令:ls【列出当前目录里面所有的文件和文件夹】
-
命令:touch login.html【创建一个login.html空文件】
-
命令:cat login.html【在命令行中预览login.html文件的内容】
-
命令:clear 【清屏】
-
命令:mkdir 文件夹名 【创建一个文件夹】
-
命令:pwd【输出当前的路径】
-
命令:vim login.html【vim是系统内置的一款编辑器】
-
命令:vim login.html【用vim打开login.html文件】
-
按下:i【切换到编辑模式】
-
随意的修改文件内容
-
按下:ESC【关闭编辑模式】
-
按下:冒号 + wq【保存并退出vim】
-