git-程序员常用命令
环境配置
git config --global user.name <Your Name> #配置用户名 git config --global user.email <email@example.com> #配置邮件 git config --list #查看当前的git配置参数 git config --global -l #查看全局配置 git config <variableName> #查看指定的环境变量配置值,如 user.name
快速查看相关命令
git --version #查看git版本 git <order> --help #查看某个git命令的帮助文档 git status #查看所有文件状态 git status <filename> #查看某个文件的状态 git branch #查看本地所有分支,查全部加-a参数,查远程仓库的,加-r参数 git tag #查看本地所有tag git log #查看历史提交 git reflog #查看历史命令
分支创建,推送,删除相关
# 创建本地分支aa: git branch aa #切换到分支aa git checkout aa #创建并切换到分支aa(aa是基于当前所处分支创建的) git checkout -b aa #删除本地分支aa git branch -d aa #删除远程仓库的分支aa(分支名前的冒号代表删除) git push origin :aa #将分支aa推送到远程库 git push origin aa #提交分支数据到远程库的指定分支 git push origin <localbranch>:<remoteBranch> #从服务器上拉取特定分支aa(--track参数会让git自动切换到对应分支) git checkout --track origin/<aa>
#使用某个分支aa强制覆盖master
首先切换到master,然后执行git reset --hard aa,然后git push origin master --force
tag操作
列出所有tag
git tag #默认显示 git tag -l git tag -n #查看所有tag和说明 git tag -l v1.* #查看匹配到的tag git ls-remote --tags origin #查看远程所有tag
查看tag信息
git show v1.0.1 #查看tag v1.0.1的内容
创建tag并推送到远程库同时创建
git tag v2.0
git push origin
创建带注释的tag并推送到远程库同时创建
git tag -a v2.1 -m '创建版本2.1'
git push origin
推送tag
git push origin [tagname] #推送到远程仓库 git push origin --tags #推送所有tag到远程仓库
删除tag
git tag -d <tagname> git push origin :refs/tags/<tagname> #方式一:远程tag删除 git push origin --delete <tagname> #方式二:远程tag删除
文件操作和状态
刚刚添加的文件处于untracked状态,并未受到版本跟踪
现在执行了 git add . 或 git add <file> ,文件将提交到暂存区,从这里开始跟踪状态,以下操作均以此为基础
此时如果想把文件从暂存区移除,但是文件保存在工作区,也就是从跟踪单中删除,要执行:git rm --cached <file>
此时如果想把文件从暂存区和工作区都删除,要执行:git rm -f <file>
此时修改了文件,在还未 git add/rm 前想撤销修改,要执行:git checkout -- * 或 git checkout -- <file>(其实是用版本库的覆盖工作区的修改)
如果已经做了 git add,但还未 commit 前想撤销,要执行:git reset HEAD . 或 git reset HEAD <file>
如果已经做了git rm,但还未commit 前想撤销,要执行:git checkout -- <file>
现在已经执行了 commit,假设执行git log,找到这次提交的commit id是commit_id
此时想取消这次commit,但是所做的修改不取消,要执行:git reset <commit_id>
此时想取消这次commit,且不保留commit之前修改的代码,直接恢复到commit前对应的这个commit_id版本,要执行git reset --hard <commit_id>
现在已经执行了push
此时想让远程库回退到指定的版本,要执行:git reset --hard <commit_id>,然后执行git push -f origin <branch>
一般的开发流程
------远程分支拉取到本地-----
1、新建文件夹myProject(假设远程分支叫dev)
2、进入myProject,执行git init(初始化git信息)
3、执行git remote add origin http://xxxxx.git(建立关联)
4、执行git fetch origin dev(拉取代码)
5、执行git checkout -b dev origin/dev(新建本地分支对应远程分支,并切换到这个分支)
6、执行git pull origin dev
开始开发后:
1、提交到stage
git add <file> 或 git add .
2、提交到版本库
git commit -m "......."
3、拉取远程库代码,解决冲突
git pull origin <branchName>
4、更新后推送到远程库
git push origin <branchName>
其他
#查看远程库的url及权限(-v是verbose,详细信息) git remote -v #查看与本地git库关联所有远程库(一个本地git库可以向多个远程git库推送) git remote #比较暂存区和工作区的区别 git diff <file> #比较暂存区和上一次提交的区别 git diff --cached <file>
#合并分支,取消合并
git merge git merge --abort
#撤销commit:已经commit但是未push,想撤销提交,这时候会删除commit的记录,文件的修改不会被清除;revert commit会删除对代码的修改,不会删除当前的这个commit记录,且会增加一个revert commit的commit记录
undo commit
git merge和git rebase的区别对比,这篇文章讲的最清楚:https://blog.csdn.net/weixin_42310154/article/details/119004977