git常用操作集

226 阅读4分钟

全局设置

  1. git安装后自报家门,姓名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
  1. 初始化工作区
git init
  1. 添加新文件到缓存区,并commit
# 添加工作区单个文件
git add readme.txt
# 添加工作区所有文件
git add .
# -m 是对本次提交的描述,最好是有意义的
git commit -m "first commit" 
  1. 查看git 状态
git status
  1. 比较工作区修改前后文件(修改未add)
git diff readme.txt
  1. git查看log
# 查看commitid日志
git reflog
----------------------------------------------------------------------------
# 查看commitid详细日志
git log
  1. git版本回退
git reflog //版本回退需要知道commitid的前几位(前七位),所以需要先查看commitid
git reset --hard e3c958d //假如要会退到第二版本
  1. 取消工作区修改,实际上使用版本库中文件替换当前文件内容
# 回退单个文件
git checkout -- readme.txt
--------------------------------------------------------------------------------
// 回退所有文件(比较暴力,谨慎操作)
$ git checkout .
  1. 取消暂存区文件的修改
git reset HEAD readme.txt
  1. 删除版本库中文件
# git rm 和git add 其实是等效的,都是对暂存区的操作
git rm test.txt  
git commit -m "rm test.txt"
  1. 添加远程仓库并push
# 添加远程仓库,一般给远程仓库命名为origin
git remote add origin (远程仓库地址)
# 第一次向远程仓库提交加-u参数(-u可以把本地分支关联远程分支)
git push -u origin master
  1. 从远程仓库克隆
# 后面也可再跟一个名字,即重命名git库
git clone (远程仓库地址)
  1. 创建新的分支
git checkout -b dev
# 这条命令可以用一下两条命令替代
git branch dev # 创建分支
git checkout dev # 切换分支
  1. 合并分支
# 把dev分支合并到当前分支,如master分支
git merge dev 
  1. 删除分支
# 删除本地分支
git branch -d dev 
# 强制删除本地分支
git branch -D 分支名
# 删除远程分支
git push origin --delete dev
  1. 查看分支合并图
git log --graph
  1. 分支策略
分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
  1. git stash 隐藏,必须把修改的文件进行 git add 后 才可以 gits tash
# 暂存文件
git stash
# 查看暂存列表
git stash list
# 暂存文件撤回本地
git stash pop
  1. git 查看远程仓库信息
git remote
origin
74565@jason MINGW64 /c/notos/code/gitpractice (dev)
git remote -v
origin  git@github.com:jasondong-1/gitpractice.git (fetch)
origin  git@github.com:jasondong-1/gitpractice.git (push)
  1. 推送分支(会推送到远端对应的分支上)
# 推送到远端的master
git push origin master 
# 推送到远端的dev
git push origin dev 
  1. 从远程仓库克隆
# git clone 默认只会把远端的master克隆下来
git clone <远程地址> 
git branch
* master 
  1. 获取远端其他分支
git checkout -b dev origin/dev # 现在有了对应的dev分支
git branch
* dev
  master
  1. 多人同时写作,修改同一份文件,产生冲突(这个为大的话题,本文不做详解)

  2. git打标签(人类可以识别的标志)

# 33dd7af是commit-id,为指定提交打标签
git tag v0.1 33dd7af 
# 或
git tag -a v0.2 -m "stable edition" e47dc70
# 查看 tag 
git tag
  1. 操作标签
# 可以推送一个本地标签;
git push origin <tagname>
# 可以推送全部未推送过的本地标签;
git push origin --tags
# 可以删除一个本地标签;
git tag -d <tagname>
# 可以删除一个远程标签。
git push origin :refs/tags/<tagname>
  1. .gitignore 可以忽略.gitignore 文件中的文件
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
  1. 文件大小写忽略
# 查看是否忽略大小写
git config core.ignorecase
# 设置默认不忽略大小写
git config core.ignorecase false
  1. 代码迁移 克隆老仓库(裸仓库):.
git clone --bare git@codehub.devcloud.huaweicloud.com:e2f197xxxxxxx19fc4ae7348b2ed41/Node_admin-integral-mall.git

进去克隆下来的裸仓库中:

cd Node_admin-integral-mall.git/

传到新仓库中: git push --mirror git@codehub.devcloud.huaweicloud.com:jxxxxxxxx/Node_admin-integral-mall.git 删除克隆下来的老仓库:

rm -rf xxx