Git 经验分享(公司开发常用git命令) 2020.04.10

Git 经验分享

一、 创建与合并分支

  1. 从master分支创建dev分支并切换到dev分支
git branch  //查看本地当前的分支,分支前面带“*”表示当前分支,剩下的分支表示本地有的分支。
git branch -a  //查看远程全部的分支,白色的表示本地有的,红色的表示本地没有,仅在远程存在。
git checkout master //切换到主分支
git branch dev // 创建分支dev
git checkout dev//切换到分支dev
  1. 分支合并(将dev合并到master)
git checkout master
git merge dev//合并完成后,删除dev分支.(删除dev分支时,注意我们当前所在的分支不能是dev分支)
git branch -d dev//删除分支
git branch//删除后,查看分支(此时看不到dev分支了)
  1. 总结 :工作中经常从master创建新的分支,具体操作如下
master创建新分支:
git checkout master
git checkout -b  issues1234
git push origin issues1234
git add ..
git commit -m "***"
git push origin issues1234
//注意:将本地分支branch1推到远端的branch2操作步骤:
git push origin branch1:branch2
  1. 删除分支:
git branch -D   issues1234  //本地强制删除分支issues1234
git push origin  :issues1234  //推到远程

二、 解决冲突

<<<<<<<
自己的代码
=======
别人的代码
>>>>>>>
  • git diff或者git diff aaa.txt查看文件发生了哪些变化, 解决了以后需要重新commit
From Git version 1.6.1 there are --ours and --theirs options for keeping only the local or remote version of a file with a merge conflict.
git checkout --ours 
git checkout --theirs 
Really simple to use!
git checkout --ours .  # checkout our local version of all files
git add -u             # mark all conflicted files as merged
git commit             # commit the merge  解决了以后需要重新commit

三. 代码暂存

git stash//将当前更改的代码储藏起来,等以后恢复使用
git stash pop //恢复的同时把stash内容删掉
git stash apply //恢复stash,但是stash内容并不删除
git stash drop //在上面操作的基础上,以此来删除stash
git stash clear//将stash空间清空
原来git stash pop stash@{id}命令会在执行后将对应的stash id 从stash list里删除,
而 git stash apply stash@{id} 命令则会继续保存stash id

四、版本回退

  1. 对于已经push的版本,进行回退
git reflog  //查看以往版本号(本地的commit)
git log //查看各版本号及信息(所有的commit:本地commit + 其他同事的commit)
git reset --hard HEAD //回退至上一个版本
git reset --hard 版本号 //本地回退到指定的版本
git push  -f origin dev    //将远程的也回退到指定版本
git remote show origin //查看远程库的一些信息,及与本地分支的信息
git checkout -- . //忽略当前所有变化
git reset —soft head~1 //保留本地代码 回退到上一次的
git reflog //验证当前head 指向的版本号
git push origin 分支 --force ok//如果提交失败,因为当前分支的版本低于远程分支的版本,所以要想覆盖掉它,必须使用force

  1. 对于还没有push的, 取消commit
git revert commit_id//将某次commit的更新取消,但是这次commit的前后更新都不受影响。

五. 标签管理

//给当前分支最新commit打标签
git tag '1.0.0'
//给commit版本号1234打个标签
git tag '1.0.0' 1234
//创建的标签只存在本地,推至远程
git push origin '1.0.0'
//一次性推送未推至远程的本地标签
git push origin --tags
//查询所有标签
git tag
//查询标签详细信息
git show '1.0.0'
//删除本地标签
git tag -d '1.0.0'
//删除远程标
//先从本地删除
git tag -d '1.0.0'
//然后从远程删除
git push origin :refs/tags/v1.0.0
//最后可以在gitlab上查看是否真正的删除了标签

//创建带有说明的标签,用-a指定标签名,-m指定说明文字
//git   tag   -a   版本号   -m    说明信息   commit版本号
git tag -a '1.0.0' -m "version 1.0.0 released" 34372b05(commit版本号)    
//查看标签详细信息
git show '1.0.0 '

六. 常规操作

  • git log 查看所有的commit提交记录
  • git show 查看提交的详情

1.查看最新的commit
git show
2.查看指定commit hashID的所有修改:
git show commitId
3.查看某次commit中具体某个文件的修改:
git show commitId fileName

git 在pull或者合并分支的时候有时会遇到下图这个界面

image
  • 可以不管(直接下面3,4步),如果要输入解释的话就需要:

    1. 按键盘字母 i 进入insert模式;
    2. 修改最上面那行黄色合并信息,可以不修改 // 黄色内容为默认的合并信息;
    3. 按键盘左上角"Esc";
    4. 输入":wq",进行修改后保存退出,然后按回车键即可。
  • 强制退出

先按esc键盘
:wq!
接着 q! 回车 //表示不保存退出
或wq! 回车 //表示保存并退出

七. git本地仓库与github仓库关联命令

*   进入到需要推送的文件夹
*   初始化目录:git init
*   添加所有文件到本地库:git add .
*   提交文件到本地库:git commit -m 'discription'
*   将本地库和远程库进行关联:git remote add origin [[email protected]](mailto:[email protected]):cjxz/JMHtest.git
*   拉取远程库文件同步到本地:git pull --rebase origin master
*   将本地库文件退到远程库:git push -u origin master

远程仓库的创建好了, 直接克隆代码就好了.

git clone ****

你可能感兴趣的:(Git 经验分享(公司开发常用git命令) 2020.04.10)