GIT常用命令整理
GIT环境管理
克隆仓库
git clone [url]
.gitignore:配置忽视的文件和目录,这些文件和目录就不会被git跟踪。
配置用户名、密码和邮箱
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git config --global user.password token
git config --global core.editor "vim" //git amend编辑器设置
GIT分支管理
基于本地分支创建新分支
git checkout -b [newbranch]
基于远端分支创建本地分支
git checkout -b [newbranch] origin/[remotebranch]
关联本地分支与远端分支
git branch --set-upstream-to=origin/[remotebranch] [localbranch]
提交本地分支之远端仓库,加-f会强制覆盖
git push origin [localbranch]
删除本地分支,-D便是强制删除
git branch -d [localbranch]
删除远端分支
git push origin --delete [remotebranch]
分支关联状态查看
git branch -vv #查看分支关联状态
git branch -r #查看远程分支
git branch -a #查看所有分支
切换分支
git checkout [localbranch]
代码提交:
代码拉取
#git pull=git fetch + git merge
git pull #取回远程主机某个分支的更新,再与本地的指定分支合并
git fetch #一旦远程主机的版本库有了更新(即比本地更高的版本),需要将这些更新取回本地,fetch的只是commit_id,不是实际代
git merge #在本地分支合并远程分支,merge会生成新节点,两个分支提交分开显示
git rebase #在本地分支合并远程分支,不会生成新节点,将两个分支融合成线性提交
提交代码到暂存区
git add [file] #提交该文件到暂存区
git add . #提交所有内容到暂存区,包括文件修改及新文件
git add -u #只提交被修改文件到暂存区
提交代码到本地仓库
git commit -a -m"注释" #提交所有到本地仓库
撤销提交
git reset --soft [commitid] #回退到commit状态
git reset --hard [commitid] #回退到add状态
git reset --mixed [commitid] #回退到未修改状态
注意:
HEAD^: 上个版本
HEAD^^: 上上个版本
代码回滚
#git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit:
git revert [commitid]
整个项目回滚
git reset --hard [commitid]
git push -f origin [remotebranch]
暂存区:
stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。
git stash save "注释" #保存
git stash list #查看现有stash
git stash pop/apply stash@{0} #恢复某次暂存, 区别在于apply不会把记录移除
git stash drop stash@{0} #移除某次暂存,后两者不指定则默认最新次暂存
版本对比:
git status
git log # 查看提交日志
git log --stat # 查看提交日志及修改文件信息
git log --pretty=oneline # 查看简洁提交日志
git log [commitid1]..[commitid2] --name-status # 查看多版本提交文件变化
git diff [commitid1] [commitid2] # 查看版本提交具体差异
分支多源配置
添加除origin之外的upstream
git remote add upstream [url]
拉取最新upstream内容
git fetch upstream
分支内容调整为与upstream版本一致
git reset --hard upstream/[remotebranch]
提交当前分支
git push origin [localbranch]
标签:
给当前分支打标签,就是给当前的版本做个标记,以便回退到此版本。发布一个版本时,我们通常先在版本库中打 一个标签
git tag [-a] [tag名] [-m] [tag描述]
显示提交tag到远端仓库
git push origin [tag名]
查看tag列表
git tag
删除tag
git tag -d [tag名]
git push origin :refs/tags/[tag名]
检出标签
git checkout [tag名]
子模块:
递归方式克隆子模块初始化
git clone <repository> --recursive 递归的方式克隆整个项目
普通方式克隆子模块
git clone <repository>
git submodule init 初始化子模块
git submodule update 更新子模块
添加子模块
git submodule add <repository> <path> 添加子模块
此时.gitmodules模块新增如下信息
[submodule "<module>"]
url = ../<module>.git
删除子模块文章来源:https://www.toymoban.com/news/detail-492963.html
git rm <module>
git status
git commit -m "remove submodule"
git push origin master
子模块代码更新文章来源地址https://www.toymoban.com/news/detail-492963.html
git submodule foreach git pull
其他:
git clean -df #清理workspace中未被git版本控制的文件,比如临时文件,构建出来的二进制文件。
git rebase -i #针对历史提交信息进行修改、合并等操作
到了这里,关于GIT常用命令整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!