git 基本配置
全局配置
git config --global user.name xxxx
git config --global user.email xxx@xx.com
获取当前用户信息
git config user.name
获取当前email地址
git config user.email
获取用户名和email
git config --list
修改用户信息
git config --global user.name xxx
gitconfig --global user.email xxx@xxx.com
//删除name
git config --global --unset user.name
常用命令
git init // 创建一个空仓库
拉取远程仓库命令
git clone ssh://xxxx(远程仓库地址) 别名(可以省略)
添加文件到暂存区
!将文件添加到暂存区(注意,每次新添加文件或修改文件必须添加到暂存取才可commit)
git add 文件名
git add -A或者 git add . //将整个工作目录添加到暂存取
查看当前状态
git status
提交历史记录
git commit -m '提交暂存区文件到历史记录' // 将暂存内容提交到工作区 -m 后面是日志信息
删除暂存区和历史记录里文件
git rm filename(文件名)
删除暂存区文件
git rm --cache filename --文件名
忽略文件提交到版本库
第一步:新建.gitignore
vim .gitignore
*.config // 这里忽略以.config结尾的文件
config/ // 忽略config 目录下的文件
git lol // 查看历史树状结构 linux 才有这个命令
git merge --abort // 如果合并冲突, 放弃合并命令
分支
查看分支
git branch -a // 查看远程分支
git branch // 查看本地分支
创建分支
git branch test(分支名) // 创建分支
git push origin test // 把本地分支推送到远程分支
git checkout test(分支名) // 切换分支
删除本地分支
git branch -d test(本地分支名) // 删除本地分支
git push origin :test(删除远程分支名)
更新本地所有分支脚本
git branch | awk 'BEGIN{print "echo ****Update all local branch...@daimon***"}{if($1=="*"){current=substr($0,3)};print a"git checkout "substr($0,3);print "git pull --all";}END{print "git checkout " current}' |sh
合并分支
在git中,可以使用git merge 和git rebase两个命令来进行分支的合并。
git checkout master // 这里切换到master分支
git merge test(分支名) // 你想要合并的分支名, 这里合并到master分支
查看修内容
git diff fileName(文件名, 省略文件名看到当前工作所有文件修改) // 查看修改文件内容
版本回退
回退到上一个版本
git reset --hard HEAD^ // 回退到上一个版本 HEAD^^ 上上个版本,以此类推
回退到指定版本
git reset --hard HEAD~100 // 指定回退到前100个版本
获取所有版本号
git reflog
根据版本号回滚
git reset --hard 版本号 // 根据版本号回滚, 不确定版本号的情况下,可以先通过git reflog 获取需要回滚的版本号
1:文件恢复,未提交之前(git add 之前),我发现添加内容有误,所以我得马上恢复以前的版本
git checkout -- fileName(文件名) // 命令 git checkout --readme.txt 意思就是把文件在工作区做的修改全部撤销
2: 另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
对于第二种情况,我想我们继续做demo来看下,假如现在我对readme.txt添加一行 内容为6666666666666,我git add 增加到暂存区后,接着添加内容7777777,我想通过撤销命令让其回到暂存区后的状态。如下所示: