Git踩坑之路
Contents
Git 教程
详见 《廖雪峰Git教程》
git和svn区别
详见 git和svn区别
绑定远程仓库
绑定远程仓库
$ git config --global user.name "zhangsan"
$ git config --global user.email "zhangsan@qq.com"
ssh key(rsa加密)
检查
cd ~/.ssh默认目录: C:\Users\specter.ssh生成公钥和私钥
$ ssh-keygen -t rsa -C "zhangsan@qq.com"github粘贴公钥
创建版本库
初始化一个Git仓库,使用
git init添加文件到Git仓库,分两步
- 第一步,使用
git add <file>,可重复添加多个文件 - 第二步,使用
git commit完成
- 第一步,使用
git是不能管理空的文件夹的
版本回退
掌握工作区的状态,使用
git status使用
git diff查看修改内容
HEAD指向当前版本,版本间穿梭使用
git reset --hard <commit_id>
使用
git log查看提交历史使用
git reflog查看命令历史
工作区和版本库
三大区
工作区有一个隐藏目录.git是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
分支管理
使用
git branch查看当前分支使用
git checkout master切换会主分支使用
git merge dev合并分支,使用git branch -d dev删除合并的分支使用
git log --graph查看分支合并图
合并分支时,加上
--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并; 而默认fast forward合并就看不出来曾经做过合并
多人协助
推送之前需要先用
git pull获取更新错误提示“no tracking information”,说明本地分支和远程分支的链接关系没有建立。
git branch --set-upstream <branch> origin/<branch-name>合并有冲突,则解决冲突,并在本地提交
解决掉冲突后,再用
git push origin <branch>推送
标签管理
使用
git tag <tag_name>默认HEAD上,使用git tag查看所有标签使用
git tag <tag_name> <commit_id>提交到指定的commit上使用
git tag <tag_name> <commit_id>提交到指定的commit上使用
git tag -a <tag_name> -m ""
本地 => 远程
本地新建一个git仓库
git init初始化本地git仓库
git add .git commit -m ""关联一个远程库
git remote add origin git@server-name:path/repo-name.git第一次推送master分支的所有内容到远程
git push -u origin master以后推送
git push origin master
远程 => 本地
cd相关根目录下
克隆
git clone git@server-name:path/repo-name.git