git学习使用笔记

git学习使用笔记

前情提要:下载安装并配置git

进入网站https://git-scm.com/下载安装,然后在命令行执行配置:

git config --global user.name "学编程的鱼丶"
git config --global user.email "xxx@xxx"

#选择执行(出现中文乱码执行):

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8     //windows配置环境变量
//export LESSCHARSET=utf-8    linux bash配置环境变量

检查信息是否写入成功

git config --list

一.基础用法

git add xxx
git commit -m 'xx'
git pull
git push

二.基础命令说明

git init  创建git版本库
git clone xx/xx.git  克隆远程仓库到本地

git remote  查看远程库的信息
git remote –v  查看远程库的详细信息

git status  查看状态
git add .    将所有文件添加到暂存区
git add xx  将单个文件添加到暂存区
git commit -m 'xx'  把暂存区文件提交到当前分支上
git commit -am 'xx'  (git add .和git commit -m 'xx'的结合)
git pull  拉取远程最新代码并更新本地代码
git push  将当前分支上的代码上传到远程git仓库
git diff xx  查看文件的改动
cat xx  查看文件内容

git log  显示所有提交日志
git log –pretty=oneline  按单行显示所有提交日志
git reflog  获取所有提交日志的版本号

git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上一个版本(以此类推)
git reset --hard HEAD~100 回退到前100个版本(100为任意正整数)
git reset --hard HEAD xxx  回退到某一个版本(xxx为版本号)
git reset --soft HEAD~  只移动HEAD 的指向,但并不会将快照回滚到暂存区域;相当于撤消了上一次的提交(commit)

git checkout -- xx  撤销工作区的修改(未add前修改的内容,撤销到与版本库一样;add后再修改的内容,撤销到add处)
rm xx 配合git add、git commit可以实现彻底删除文件(本地和远程)

三.本地仓库和远程仓库同步

本地已经git init创建过新仓库,若无仓库可git clone克隆远程仓库到本地

第一步:创建SSH Key(id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人)

ssh-keygen -t rsa -C "xxx@xxx"   

第二步:登录github,打开“settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容,并点击创建;
第三步:然后在右上角找到“New repository”创建一个新的仓库;
第四步:本地代码库添加到远程仓库

git remote add origin https://github.com/xxx/xx.git

第五步:将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了

git push -u origin master

四.创建与合并分支(dev分支等)

1.查看分支:

git branch

2.创建分支:

git branch xx

3.切换分支:

git checkout xx

4.创建+切换分支:

git checkout –b xx

5.合并某分支到当前分支:

git merge xx  

6.合并某分支到当前分支,禁用“Fast forward”模式:

git merge --no-ff -m "注释" xx   //采用这种方式,删除分支后,git log还会有分支信息

删除分支:

git branch –d xx

五.bug分支

假设现在存在主分支和dev开发分支,主分支出现bug
第一步:先把正在开发的dev分支代码隐藏

git checkout dev
git stash

第二步:在主分支下创建bug分支并切换

git checkout master
git checkout -b bug

第三步:在bug分支下,修改bug;并提交代码

git add xxx;git commit -m 'xx'

第四步:切换到主分支合并bug分支并删除分支

git checkout master
git merge --no-ff -m "修复bug合并到主分支" bug
git branch -d bug

第五步:切换到dev分支,查看隐藏区列表,并删除隐藏区恢复代码;最后提交dev分支的开发代码

git checkout dev
git stash list
git stash pop
git add xxx
git commit -m 'xx'

第六步:切换到主分支并合并dev分支,有冲突解决冲突代码文件;最后提交代码到远程仓库

git checkout master
git merge dev

git add xxx
git commit -m 'xx'
git push

六. 忽略,取消忽略,找到忽略本地文件(针对.gitigore忽略不了的文件)

忽略文件:

git update-index –assume-unchanged xx

取消忽略文件:

git update-index –no-assume-unchanged xx

但是忽略的文件多了,想找出所有被忽略的文件,暂时找到下面的办法:

git ls-files -v | grep '^h '

提取文件路径,方法如下:

git ls-files -v | grep '^h ' | awk '{print $2}'

所有被忽略的文件,取消忽略的方法,如下:

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged

你可能感兴趣的:(git)