–>安装完Git后,需设置用户名和Email地址
git config --global user.name "用户名"
git config --global user.email "zhuzhijia7kouren@163.com"
–>常用指令
git add readme.txt –> 添加文件readme.txt至仓库里
git add --all –> 添加工作区内所有文件
git commit -m "wrote a file" –> 提交托管至仓库
git status –> 查看当前库情况
git diff –> 查看相关修改内容
git log –> 查看所有从最近到最远的历史提交日志
git log --pretty=oneling –> 查看所有从最近到最远的历史提交日志,并一行输出
git config user.name –> 查看自己当前git用户名
git config user.email –> 查看自己当前git邮箱
英文输入法下按下q –> 退出git log命令
-> 查看远程分支,发现想要的分支不存在
git fetch // 先用fetch命令更新remote索引。
git branch -a // 再次查看远程分支,已存在
–>合并分支
先切换至develop分支、更新线上最新代码,然后合并分支feature/distribution到develop
git checkout develop
git pull origin develop
git merge feature/distribution
–>分支(feature)同步主干(master)代码
git checkout develop
git pull origin develop
git checkout applyshoper
git merge develop
->创建分支
git branch dbGoodsMall
->撤销本地修改
git checkout .
->取消合并merge
git merge --abort
->更新远程分支列表
git remote update origin --prune
->拉取远程指定分支(1)
// 这里有时候会拉取失败,git branch -a 发现gitlab已推送的分支没有打印出来,这时需要执行git fetch试下
git checkout -b develop origin/develop // 拉取远程分支origin/develop到本地分支develop
git pull origin develop // 可以不用这步操作,保守起见,再拉一下远程分支
->拉取远程指定分支(2)
git branch -v
git checkout pro
git pull origin pro
–>删除远程分支
(注:删除分支时,需要切换到非当前删除的分支)
删除本地分支: 执行git branch -a查看远程和本地分支情况,删除本地分支git branch -d feature/distribution,再次查看git branch -a,已经成功删除
git branch -a
git branch -d feature/distribution // 删除本地分支
git branch -a
git push origin --delete feature/distribution // 删除远程分支
->删除本地分支
(注:删除分支时,需要切换到非当前删除的分支)
git branch -d 分支名
->版本回滚
git log -3 // 查看最近三个提交记录
git reset --hard e377f60e28c8b84158 // 回滚指定版本
git push -f origin develop // 强制推送远程
–>回滚指定文件到某个版本
git log
git checkout 519b3ec48905fb1d2bb2a83316d5a86e756b1aea src\page\ai\workbench\index.vue
// 回滚成功之后,再提交
->回滚指定版本,修复bug之后,再回到最新版本:
应用场景:生产出现bug,但是此时master分支是最新版本,测试尚未验收,这时候需要先回滚到上次发版的版本,修复完之后,再回到最新版本:
git log // 先记录当前版本最新的commitid和需要回滚版本的commitid
git reset --hard 需要回滚版本的commitid
// 从当前版本拉个修复bug的分支,修复完之后合并当前版本,打包发版
// 放弃修改,执行git pull拉去远程最新分支(或者git reset --hard 当前版本最新的commitid)
git pull 或者 git reset --hard 当前版本最新的commitid
// 第二种方法
git log
git branch recover_branch 需要回滚版本的commitid
git checkout recover_branch // 这种方法不会影响最新分支
–>查看、删除、添加远程库地址
git remote -v
git remote rm origin
git remote add origin http://gitlab.xxx.vip/gzh/boss.git
->git fetch后怎么比较差异
->将某一次提交合入到本地当前分支上
// 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,
// 而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。
// 先切换到要合并的分组,执行git log 复制分支commit ID
// 再切换到当前分支,执行cherry-pick
git checkout dev
git log
git checkout master
git cherry-pick 8182b9598ae5ec02089a447359170452a4f8b39a
git push origin master
->打标签
// 查看当前分支标签
// 打标签
git tag
git tag -a v0.1.1 -m "修复买家投资覆盖(第三方数据时间区间问题)"
git push origin v0.1.1 // 将tag同步到远程服务器
-> 修改.gitignore配置失败
(因为有缓存问题)
git rm -r --cached . // 清理追踪文件的缓存:
git add . // 添加到缓存区:
git commit -m "update .ignore" // 提交到本地仓库
git push origin master // 推送到远程仓库
–> 删除tag
git tag -d v0.1.1 // 本地删除
git push origin :refs/tags/v0.1.1 // 远端删除
->git已经删除了远程分支,本地仍然能看到


git branch -a
git remote show origin // 查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
git remote prune origin
git branch -a
–>添加远程库
$ git remote add origin git@github.com:royluck/learnit.git
(添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。)
$ git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
$ git push origin master
–>从远程库克隆
$ git clone git@github.com:royluck/royluck.github.io.git (注:记得添加.git后缀)
注:GitHub给出的地址不止一个,还可以用https://github.com/royluck/royluck.github.io.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。 使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https/http。(Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。)
备注:我们公司就是只能通过http协议clone项目, :).jpg
阿里云克隆clone报错:
用Git在阿里云下克隆时出现“Please make sure you have the correct access rights and the repository exists”错误

相关参考:
生成/添加SSH公钥
Git简单生成公钥和私钥的方法
git查看本机公钥
Git删除分支/恢复分支
其它:


网友评论