GIT 常用命令
这篇文章其实早就写了,总感觉缺点什么,一直没有发出来,发现等等着等着,也没有什么可以加的,就先这么发吧
Git 创建仓库
# 当前目录作为仓库
git init
# 指定目录作为仓库
git init newrepo
# 拷贝远程仓库
git clone XXX.git
# 拷贝远程仓库至指定目录
git clone XXX.git newrepo
# 下载指定分支(例如;develop)代码
git clone -b develop XXX.git
# git克隆远程仓库指定分支,并在本地重命名
git clone -b <远程指定分支> <远程仓库地址> <本地文件夹名>
# 拉取代码: git pull = git fetch + git merge
git pull
git fetch
配置
# 显示git配置信息
git config --list
# 提交代码时的用户信息配置(去掉global指对当前仓库有效)
$ git config --global user.name "monkey"
$ git config --global user.email monkey@qq.com
分支操作
# 查看本地分支关联(跟踪)的远程分支之间的对应关系
git branch -vv
# 创建分支,无name时列除本地的分支
git branch [branchname]
# 切换分支
git checkout branchname
# 切换分支
git checkout -b newbranchname
# 选中分支合并至当前分支
git merge branchname
# 挑选部分的commit来合并,commit-id可以通过git log 来获取
git cherry-pick commit-id
# 多个合并
git cherry-pick commit-idA commit-idB
# 连续的多个合并
git cherry-pick commit-idA..commit-idB
# 删除分支
git branch -d testing
# 将本地分支作为远程分支
git push origin newbranch
# 本地分支与远程远程分支关联
git push --set-upstream origin newbranch
# 删除远程分支
git push -d origin develop
# 删除本地没用的 remotes/origin/branch
git remote prune origin
# 分支重命名-1: 修改本地分支名称
git branch -m oldbranch newbranch
# 分支重命名-2: 删除远程分支
# 删除远程分支
git push origin :oldbranch
# 分支重名命-3: 本地分支push到远程去
git push origin newbranch:newbranch
重要的阶段
# 特别的提交快照-打tag命令
git tag -a v1.0.0 -m "XXXX"
# 查看已有标签
git tag
# 删除标签
git tag -d v1.0.0
# 查看此版本所修改的内容
git show v1.0.0
# 查看此版本所修改的内容
git show v1.0.0
# Tag推送到远程仓库
git push origin v1.0
# push所有tag
git push origin --tags
# 查看tag打包时间
git log -1 --format=%ai v1.0.0
查看提交历史与版本回退
# 查看本地记录
git reflog
# 取消rebase状态
git rebase --abort
# 查看历史提交记录
git log
# 查看历史记录的简洁的版本
git log --oneline
# 开启了拓扑图选项
git log --graph
# 逆向查看日志
git log --reverse --oneline
# 查看最新5条更新日志
git log -5 --stat
# 查看指定用户的提交日志
git log --author=monkey --oneline -5
# Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 --no-merges 选项以隐藏合并提交)
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
# 以列表形式查看指定文件的历史修改记录。
git blame [file]
# 回退至指定版本
git reset --hard c7f2ecf0d4778db92f9f4994fff0b6f3c9530b06
# 强推到远程分支 -注:当远端设置了分支保护,则首先要将其取消,再强推;强推之后,之前的版本被覆盖了,无法再查看到。
git push origin HEAD --force
更多log日志的参考:http://git-scm.com/docs/git-log
暂存
# 暂存
git stash
# 取出最近一次暂存
git stash pop
# 暂存列表(可看到暂存编号)
git stash list
# 删除特定编号的stash项
git stash drop stash@{2}
# 删除最新暂存
git stash drop
git stash drop stash@{0}
提交与修改
# 添加文件至暂存区(所有文件)
git add .
# 添加指定文件至暂存区(包括子目录)
git add file1 file2
# 查看项目状态
git status
本地目录发布至远端仓库命示例
git init
git add README.md
git commit -m "[A] init my project"
git branch -M main
git remote add origin https://github.com/monkey01127/eslint-config-monkeyfe.git
git push -u origin main
本地已有仓库新增其他远端仓库示例
git remote add origin https://github.com/monkey01127/eslint-config-monkeyfe.git
git branch -M main
git push -u origin main
# 强制将代码推入2个仓库
git push -f origin1 dev git push -f origin2 dev
# 推入所有仓库
git push all
git 取消代理
# 使用unset指令取消代理:
unset http_proxy
unset https_proxy
unset HTTPS_PROXY
unset HTTP_PROXY