重新梳理下git的常用的命令。由于我自己电脑是
安装
- 在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
- 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功
设置
先自报家门,全局设置下。
git config --global user.name "Your Name" git config --global user.email "Your Email"
创建版本库
先要倒转到对应的文件夹下面。然后
git init
基本操作
在文件夹下面进行开发。之后开始进行各种编辑完成之后进行git操作
git add readme.txt //这个命令是把要提交的文件添加到版本库里面去做提交的准备,可以多次使用
git rm readme.txt //删除文件
git commit -m ‘Your explain’ //这个命令把你前面准备好的文件进行提交
git status //查看当前git的状态,那些文件修改了,那些文件准备好了。用于随时掌握工作状态
git reset –hard HEAD^ //向前回退到上一个版本,HEAD~数字表示向上几个版本,也可以用 commit_id值来确定。
git log //用于查看提交历史,确定回退版本使用
git reflog //查看所有提交的历史
git checkout — file //丢弃工作区的修改
git reset HEAD <file> //回退场景1
分支操作
git branch //查看分支
git branch <分支名称> //创建分支
git checkout <分支名称> //切换分支
git checkout -b <name> //创建并且切换分支,注意与丢弃工作区修改命令
git merge <name> //合并某分支到当前分支
git branch -d <name> //删除分支
git log –graph //查看分支合并图。
git stash //暂存工作区,不过需要先让git管理起来才可以。
git stash list //查看当前暂存区的内容
git stash apply //恢复暂存区的内容,stash内容不删除
git stash apply stash@{0} //恢复指定内容
git stash pop //恢复暂存的内容回工作区,并且删除暂存区的内容
git rebase //梳理分支提交历史为直线的操作
创建分支之后,有可能同时进行两个分支的文件修改。结果就会造成同一个文件的不同修改,造成冲突。合并之后,把造成冲突的文件进行修改,重新提交就可以了。
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
远程仓库推送
ssh-keygen -t rsa -C “Your Email” //生成本地的一个秘钥对
git remote //查看远程库的信息 -v 详细。(fetch抓取 push推送)
git remote add <远程> <git地址> //远程关联一个git库
git push -u <远程> <本地> //推送库到远程git库,-u只在第一次使用
git clone <git地址> //克隆一个项目到本地
并不是所有的本地分支都要远程推送的
master是最主要的分支,需要时刻同步的。
dev属于开发分支,开发成员之间要同步
bug分支属于本地修复bug时开的临时分支。除非老板要看你修复了多少bug
feature分支属于新功能开发的分支,取决于是否跟小伙伴在上面开发新功能。
分支完全可以自己藏着玩,是否推送看你自己。
标签
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a <tagname> -m “blablabla…”可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin –tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
多人协作模式
- 首先,可以试图用git push origin <branch-name>推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
- 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream-to <branch-name> origin/<branch-name>。
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
- 建立本地分支和远程分支的关联,使用git branch –set-upstream branch-name origin/branch-name;
所有命令及资源来源于GIT教程