git学习总结

  • git status:掌握工作时区状态
  • git diff:查看修改的内容
  • git log:查看提交历史
  • git reflog:查看命令历史
  • git branch:查看分支
  • HEAD指向的版本是当前版本

根据习惯缩写配置别名
git config --global alias.st status
st-----status//状态
co----checkout
ct-----commit//提交
br-----branch//分支
unstage-----reset HEAD//把暂存区的修改撤销掉
last-----log -1//最后一次提交信息
lg-----"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"//丧心病狂式查看历史记录

  • 把文件添加到仓库中总共分两步
//.1.从工作区添加不同文件到stage中
git add file  
//2.一次可将多个文件从stage提交到master
git commit -m "introductions"  
  • 版本回退
//1.上一个版本
git reset --hard HEAD^ 
//2.通过commit id 控制回退,
//即使窗口关闭,可以通过git reflog查看命令历史,继而查看commit id
git reset --hard commit id
  • 撤销修改
//1.工作区的文件修改,丢弃
git checkout --file
//2.添加到stage区的文件修改,丢弃
//①从stage撤回到工作区(unstage)
git reset HEAD file   
//②在工作区撤销修改
git checkout -- file
//3.未提交到远程库的,使用版本回退
git reset --hard commit id
  • 删除文件
//1.工作区中删除了文件
rm file
//2.版本库也想删除
//①从版本库删除--------与git add file对应
git rm file  
//②提交
git commit -m "删除了XXX"  
  • 误删文件
//撤销删除  
git checkout --file
//其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
  • 推送到远程库
//要关联一个远程库,使用命令
git remote add origin git@github:username/repo-name.git
//关联后,使用命令,第一次推送master分支的所有内容;
git push -u origin master
//此后,每次本地提交后,只要有必要,就可以使用命令推送最新修改;
git push origin master
  • 分支管理
    创建分支
    git branch dev
    切换分支
    git checkout branchName
    创建分支dev并切换为当前分支
    git checkout -b dev
    合并分支
    git merge dev //此时已切换至主分支
    不快速合并分支,生成一个commit
    git merge --no-ff -m "introductions" dev
    删除分支
    git branch -d dev
    解决冲突
    无法快速合并,在工作区修改之后,add,commit
    保护工作现场
    git stash
    查看工作现场
    git stash list
    恢复现场不删除stash
    git stash apply
    恢复现场并删除
    git stash pop
    恢复某个工作现场
    git stash apply stash@{0}
    未合并的分支强制删除
    git branch -D dev
    查看远程库信息
    git remote -v
    推送分支
    git push origin branchName
    抓取远程库分支
    git checkout -b dev origin/dev

  • 克隆
    git clone git@github:username/repo-name.git

  • 获取远程库某个分支的更新,再与本地的指定分支合并

git pull <远程主机名> <远程分支名>:<本地分支名>
//取回origin主机的next分支,与本地的master分支合并
git pull origin next:master
//远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin next
//上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
$ git fetch origin
$ git merge origin/next
  • 从远程库获取最新版到本地
从远程获取最新版本到本地
//使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
 git fetch origin master:temp
//比较本地仓库与下载的temp分支
git diff temp
//合并temp分支到本地的master分支
git merge temp
//删除temp分支
git branch -d temp
  • 打标签
//1.默认为HEAD打标签
git tag tagname
//2.指定commitID
git tag tagname commitID
//变迁按tag数字大小排序,不按创建时间
//3.带说明文字的标签
git tag -a tagname -m "introductions"
//4.查看标签内容
git show tagname
//5.可以指定标签信息
git tag -a tagname -m "blablabla..."
//6.可以用PGP签名标签
git tag -s tagname -m "blablabla..."
//7.查看所有标签。
git tag
//8.推送标签到远程
git push origin tagname
git push origin --tags
//9.删除标签
git tag -d tagname
//10删除一个远程标签
git push origin :refs/tags/tagname

你可能感兴趣的:(git学习总结)