Windows上安装Git
安装之后设置用户
$ git config --global user.name "Your Name"
$ git config --global user.email email@example.com
创建版本库
$ pwd
查看当前工作目录
$ mkdir learbgit
创建文件夹
$ cd learngit
切换当前工作目录
$ git init
把当前目录变成Git管理仓库
$ git add readme.txt
文件添加到仓库
$ git commit –m “说明”
添加远程仓库
$ git remote add origin git@github.com:michaelliao/learngit.git
在本地运行,建立与远程仓库的联系
$ git remote add origin https://github.com/xuedan1992/Front-End-Web-Development.git
直接使用网址
Origin是远程仓库的名字
$ git push –u origin master
将本地master分支推送到origin,第一次推送加上-u
$ git remote rm origin
当远程库建立错误删除远程库
$ git remote –v
查看现在建立联系的远程库
克隆远程仓库
$ git clone git@github.com:michaelliao/gitskills.git
$ ls
查看目录下文件
版本回退
$ git log
查看版本信息
$ git log –pretty=online
加上 –pretty=online参数
$ git reset –hard HEAD^
HEAD表示当前版本,HEAD^表示前一个版本,HEAD^^就是前两个版本
$ git reset –hard 1094a
1094a是使用log查看的版本号头数字
$ git reflog
查看所有的操作记录,包括已经回退的版本号
撤销修改
$ git checkout –readme.txt
可以丢弃工作区的修改,将readme.txt在工作区的修改全部撤销
$ git reset HEAD readme.txt
将暂存区的修改内容撤销掉,重新放回工作区
删除文件
$ git rm test.txt
$ git commit –m “说明”
删除文件并提交
$ git checkout –test.txt
删错了使用此命令用版本库里的文件恢复工作区版本
创建与合并分支
$ git checkout –b dev
创建并切换到dev分支,相当于以下两条命令
$ git branch dev
$ git checkout dev
$ git branch
查看当前分支
$ git merge dev
将dev分支内容合并到当前分支
$ git branch –d dev
删除dev分支
$ git switch –c dev
创建并切换到新分支dev
$ git switch master
切换到master分支
解决冲突
$ git merge dev
当dev和当前分支存在修改冲突会提示conflict
$ git status
查阅冲突文件
手动打开文件进行合并再提交
$ git log –graph –pretty=online –abbrev-commit
带参查看合并情况
分支管理策略
$ git merge –no-ff –m “说明” dev
合并dev到当前分支时禁用Fast forward模式,合并后的分支有历史记录,能看出曾做过合并
BUG分支管理策略
$ git stash
保存当前工作现场dev
需要在master分支上修复,先切换回master然后从这里创建新的临时分支
$ git checkout master
$ git switch –c issue-101
//修改bug并提交
$ git switch master
$ git merge –no-ff –m “说明” issue-101
切换回master分支
回到dev保存现场干活
$ git switch dev
查看工作现场
$ git stash list
恢复现场两种方式
$ git stash apply
$ git stash drop
或者
$ git stash pop
区别在于是否一步丢弃stash现场
将某个提交所做的修改应用到本分支
$ git cherry-pick <commit id>
多人协作
建立本地dev与远程origin/dev分支的链接
$ git branch –set-upstream-to=origin/dev dev
拉取远程仓库内容
$ git pull
显示冲突则手动解决,并合并,再推送
补充
不做ssl验证
git config --global http.sslVerify false
$ git status
查看工作区当前状态,文件修改,添加情况
更加详细的参考大神链接: