整理了部分个人常在项目里面用到的命令,比查官方文档要简洁明了一些,之后有新的领悟也会更新到这里(o^^o)
一,常用的git命令整理
安装完成后的配置
git config --global user.name “xxx” // 配置用户名
git config --global user.email “xxx@xxx.com” // 设置邮箱
–global 是全局配置的意思
创建版本库
git init
(命令 ls 可以查看创建结果)
从远程仓库克隆代码(http协议和ssh协议都是一样的)
git clone [远程仓库地址]
把本地仓库发布到远程仓库
git remote add origin [远程仓库地址]
查看远程仓库信息
git remote -v
添加
git add . 添加全部(添加到暂存区)
git add [文件名] //添加某一个文件(添加到暂存区)
(空文件夹不会被添加到暂存区)
提交到仓库
git commit
git commit -m “说明” //建议带提交说明
查看仓库状态(暂存区和修改未加入的也可以看到)
git status
查看具体需改
git diff
git diff [文件名] //查看具体某个文件改了什么地方
(本人常常配合 git status 使用,很实用)
查看提交历史
git log
(commit 后面那一串字符是commit_id)
重置版本(回退版本)
git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD^^ //回退到上上个版本
git reset --hard ‘commit_id’ //回退到某commit_id 的版本
如果文件在暂存区(已经git add 了),要恢复到未提交状态
git reset HEAD [文件名]
查看操作记录
git reflog (回退版本后又想切换回去可以用这个命令查看当时的ID,再用git reset 回到某版本号)
删除
git checkout – [文件名] //丢弃某文件的修改
git checkout – . //丢弃文件里面的所有修改
git rm [文件名] 删除已经提交的文件(git commit 过的文件)
推送到远程仓库(之前已经clone或是remote 过,建立起连接的)
git push origin master
从远程仓库拉取代码,并合并(有时候会出现代码冲突的情况,需要处理冲突再提交一次)
git pull
git pull origin master
从远程仓库拉取代码,不合并 ( 需要在用git merge . 来合并)
git fetch
git fetch origin master
强推到远程分支,慎用(出现发版错误的时候会用到)
git push -f
二,git分支
查看当前分支
git branch
切换分支
git checkout [分支名]
创建并切换
git checkout -b [branch]
切换到主分支,并合并分支
git checkout master
git merge [分支名] //将分支合并到主分支中
删除分支
git branch -d dev //删除分支
三,强制覆盖本地代码&强制push代码
开发的时候可能会遇到本地代码落后于远程分支,不一致的代码pull不下来,这时候可以先建一个分支把自己修改的代码存储起来,回到原来的分支,用👇的命令强制覆盖本地代码,再合并刚刚新建的分支。既保存了修改,又更新到代码
git fetch --all 拉取所有更新
git reset --hard origin/master // 本地同步线上代码的最新版本,会覆盖本地的修改
如果还没有用,可以再git pull 一下看看
强制push代码 (这个命令要慎重使用)
git push -f origin master
四,一些报错处理
1,有一个 git 进程在这个仓库中异常退出:
解决:rm -f ./.git/index.lock
附加
如果我们想pull 或是merge ,但是本地又改了东西,可以先存到临时区,这个对于多人合作的复杂项目来说还是很好用的
git stash //保存临时修改
git stash apply //恢复保存的临时修改
git stash pop //恢复最近一次的临时修改
git stash clear //丢弃掉保存的临时修改
git stash list //查看所有保存的临时修改
参考链接: https://gist.github.com/guweigang/9848271.
git 官网: https://git-scm.com/book/zh/v2/.