git 常用命令

 ——————    常用   ——————

在一个目录里初始化git  并关联到远程

mkdir gitTest // 新建目录
cd gitTest
git init // 把此目录设为git管理
git remote add origin https://XXXXXX.git // 将本地仓库与远程仓库关联同步
git remote set-url origin http://xxx/test.git // 重置远程GIT地址
git diff // 查看修改历史
git diff 文件名 // 比对这个文件修改了哪些代码
git checkout . // 恢复本地修改的 所有 文件
git checkout aa.js // 恢复这一个文件
// 查看名称和邮箱(当前项目)
git config user.name
git config user.email
// 修改
git config user.name 'xxx'
git config user.email 'xxx'
// 全局
git config --global user.name "xxx"

//  忽略提交时的 eslint 检查  

git commit --no-verify -m '评论 分页'

恢复重置

git checkout -- filename // 丢弃工作区的改动
git checkout . // 丢弃所有
// 以上:放弃掉所有还没有加入到缓存区git add的修改,不会删除新加的文件
git clean -df // 放弃并删除所有新增的文件和新增的文件夹 用git status可查看到的新加的
git reset --hard [目标版本号] // 恢复重置到这个版本
git reset --hard HEAD^:回退到上一版
git reset --hard HEAD^^:回退到倒数第二版;
git rest --hard 3628164:回退到commit id为3628164的版本;

 

恢复远程的push  详见这

git log // 记住要恢复的上个版本号
git reset --soft xxxxxxxxx // 上个版本号 soft 为刚刚修改代码还在
git log // 再检查是否恢复
git push origin 分支名 –f // 远程强制 push 分支名

本地add . 后,想撤回? 用 git reset HEAD  

本地commit 后,想撤回? 用 git reset --soft HEAD^ 

 

强行覆盖提交到远程(谨慎) 

git add .
git commit -m "your comment"
git push -u origin master -f

 

提交到多个远程地址

https://blog.csdn.net/sxhexin/article/details/113882356

 

标签 tag 

git tag // 查看本地tag
git tag tagName // 新建本地tag
git tag -a <tagname> -m “添加注解” // 新建tag并加注释
git push origin tagName // 提交到远程
git tag -d tagName // 删除本地tag git push origin :refs/tags/tagName // 删除远程tag
git fetch origin tagName // 拉取远程标签

 

所有工作区提交 到远程

git status // 查当前工作状态
git add . // 添加所有工作状态到本地缓存
git commit -m 'XXX' // 提交所有到本地仓库

git pull origin master // 提交远程前,先拉一下
git push origin master // 提交到远程

 

 分支操作及合并

git branch // 查看当前及所有分支
git branch XXX // 新建分支XXX
git checkout XXX // 切换分支XXX
git checkout -b XXX // 新建分支,并切换到XXX分支
git checkout -b XXX origin/XXX // 新建分支,并切换到XXX分支,同时远程拉取此分支
git merge master // 合并分支master 到当前分支 git branch -D XXX // D为强行删除分支XXX(不管是否合并过) git push origin XXX // 在远程新建分支XXX并提交

// 删除本地分支和远程分支
git branch -a // 先查看所有分支(本地 和 远程)
git remote update origin --prune // -a 时不同步远程,使用此即可
git push origin --delete dev // 删除远程分支
git branch -d dev // 删除本地分支

 

分支日志

git log // 查历史某版本号以后,如:commit db10740d1537fa164d0288a61fae95ac72
git log --pretty=oneline // 一行展示 清楚方便

 合并时遇到冲突想取消操作,恢复index,用git merge --abort     https://segmentfault.com/q/1010000000140446

 

远程

git remote -v // 查看项目远程git地址
git checkout -b XXX origin/XXX // 同时在本地远程建分支XXX

git branch --set-upstream XXX origin/YYY // XXX 对 YYY
git branch --set-upstream-to=origin/master // master 对 master
git branch --unset-upstream master // 取消此分支关联跟踪master
// 建立关联默认后,可简写git pull 和 git push
git remote add origin https://XXXXXX.git // 将本地仓库与远程仓库关联同步

git remote set-url origin https://xxxxxx.git // 更改远程地址,当有变动时
git remote rm origin // 删除远程地址
git remote add origin https://XXXXXX.git //
将本地仓库与远程仓库关联同步

 

 

其他

 

// 正在还未完成的 暂存一下
git stash // 存起来 详细
git stash save '备注一下' // 存起来 加个备注
git stash list // 查看
git stash pop // 恢复
git stash show // 查看哪些文件改动 默认第一项
git stash show -p // 查看改动详情代码 默认第一项

 

 

 

git diff // 查看当前改动了哪些
git log --graph // 倒序查看提交日志 即git commit -m 'xxx' 备注过的 退出按Esc q

 

加入服务器的某个分支删除了,但是本地通过git branch -a还是可以看得到,感觉很烦,通过以下命令就可以更新分支的情况。

git fetch origin --prune

 

通常在一段时间的开发之后,本地会遗留很多无用的分支,且很多分支在远程仓库中已删除,这个时候,我们就需要将本地的无用分支清理一下,以保持本地仓库的整洁

git remote show origin

 

传输用https非ssh时,每次操作总要账号密码

git config --global credential.helper store
git pull // 这回输了账号密码会保存本地,以后pull就不用输入账号密码了

 

 

REMOTE HOST IDENTIFICATION HAS CHANGED问题解决

// 解决方案
ssh-keygen -R 服务器端的ip地址 或 网址

 

Tag 批量删除操作:

        在Git v1.7.0 之后,可以使用这种语法删除远程分支:
                $ git push origin --delete <branchName>
        删除tag这么用:
                git push origin --delete tag <tagName>

   批量删除Tag :git tag -l | awk '/tag_20180[1-5]{1}/{print}' | xargs git push origin --delete tag

    注解:git tag -l 是查看所有本地tag 。
                “|” 管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
                awk 行处理器: 依次对每一行进行处理,然后输出。
                awk '/tag_20180[1-5]{1}/{print}'  : awk 中的正则表达式使用。awk命令
                xargs : 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具 xargs命令
   整个命令的理解就是:先通过 git tag -l 列出所有本地tag,然后用 awk 做正则匹配到需要删除的 tag号。将匹配到的 tag号 用 xargs 传给 git push origin --delete tag 命令。【git push origin --delete tag xxx】

批量删除分支:git branch --all | awk '/branch_20180[1-5]{1}/{print}' | xargs git push origin --delete

 

新手备忘

https://github.com/lililuni/GitStudy/blob/master/%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86.md

 

posted @ 2017-05-05 23:43  James2019  阅读(531)  评论(0编辑  收藏  举报