总结最常用的git命令,自己用到过的,每次忘了就来这里查
Git工作区、暂存区、版本库概念图
- 工作区:我们本地操作的文件目录
- 暂存区:git add后就放到暂存区了
- 版本库:git commit后就放到版本库了
- 远程版本库:git push后就放到远程版本库了
git基础命令
//设置全局用户名和邮箱(只是一个标识,记录是谁提交的)
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"
//从远程仓库拷下来
git clone url
//工作区->暂存区
git add file
//暂存区->本地仓库
git commit file -m "注释"
//查看当前分支的提交记录,注意是从初始节点一直到当前HEAD的记录
//HEAD后面也可能有节点,比如用过reset
git log
//查看所有分支的提交记录节点图
git log --graph --all
//查看提交记录节点图,单行显示,简化commit id显示
git log --graph --pretty=oneline --abbrev-commit
//查看文件修改状态
git status
//比较工作区与最新版本库的差异(这个用的多一些)
git diff HEAD
//版本回退,注意,reset不会删除历史提交节点,只是移动指针
git reset 版本号
//将暂存区回退到当前最新版本,通常用于撤销add
git reset HEAD
//回退到上一个版本,通常用于撤销commit
//注意,现在好像不能用HEAD^了
git reset HEAD~
//若加--hard,则把工作区和暂存区都恢复到版本库HEAD
//若不加--hard,则只把暂存区恢复到版本库HEAD,工作区改动还在
//这条用的最多!!通常用于工作区改乱了,直接恢复最新版本
git reset --hard HEAD
//版本回退后悔,重返未来
git reflog(查看历史命令,找到commit id,再回退回去)
git分支相关
//列出所有本地分支和远程分支
git branch -a
//新建分支并留在当前分支
git branch name
//新建分支并进入新分支
git checkout -b branch_name
//新建分支匹配clone的远程分支
git checkout -b branch_name origin/branch_name
//切换分支(如果本地没有远程有,则会基于远程创建)
git checkout/swtich branch_name
//切换分支时,当前工作区内容想暂时保存下来一会回来接着改
//详细请单独搜git stash用法
git stash
//合并指定分支到当前分支(merge)
git merge branch_name
//合并指定分支到当前分支(rebase,具体可以看我reabase那篇文章)
git rebase branch_name
//撤销合并(刚merge完之后反悔了)
git reset --hard HEAD^
//本地分支重命名
git branch -m old_name new_name
//本地分支关联远程分支(必须关联以后才可省略分支名使用git pull)
git branch --set-upstream-to origin/新分支名称
//删除本地分支
git branch -d branch_name
//删除远程分支(方法一,不推荐)(注意origin后的空格)
git push origin :branch_name
//删除远程分支(方法二,推荐)
git push origin --delete branch_name
//删除无效分支(远程库已经没有了,本地git branch -av还显示的)
git remote prune origin
git远程库相关
//关联本地库和远程库
git remote add origin git@github.com:username/xxx.git
//添加另一个远程库
git remote add my_origin https://username:password@xxx.git
//本地库推送到远程库master分支(-u表示设置该远程库为默认,同时也设置了远程master是本地master的默认,下次就可以简化写为git push)
git push -u origin master
//推送本地test分支到远程test分支(本地分支名:远程分支名)
git push origin test:test
//本地分支名和远程分支名相同,可以省略test:
git push origin test
//查看远程库详细信息
git remote -v
//删除远程库
git remote rm repo_name
//从远程库下载代码并合并
//每次要在一个之前clone下来的分支下开始开发的时候,先pull一下最新改动
git pull 远程仓库名 远程分支名:本地分支名
(git pull = git fetch + git merge)
//使用rebase进行合并(推荐!)
git pull --rebase
//从远程库下载代码(未合并)
git fetch
————————————————
版权声明:本文为CSDN博主「风中一匹狼v」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42310154/article/details/117755012