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