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

posted @ 2022-03-24 12:05  鼠标的博客  阅读(49)  评论(0编辑  收藏  举报