git - 工作常用

创建版本库

mkdir //文件夹名称
git init  //生成.git
git add 文件名
git commit -m "注释"

版本回退

git log
git log --pretty=oneline 
git reset --hard HEAS^   //回到上一个版本
git reset --hard 1094a   //1094a是ID号
git reflog   //记录的每条命令
git status  //查看状态

管理修改

//第一次修改 -> git add -> 第二次修改 -> git commit
git diff HEAD -- readme.txt   //第二次修改不会被提交
//第一次修改 -> git add -> 第二次修改 -> git add -> git commit
git diff HEAD -- readme.txt  //第二次修改被提交了
撤销修改
git checkout -- readme.txt //意思就是,把readme.txt文件在工作区的修改全部撤销
//一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
//一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
//总之,就是让这个文件回到最近一次git commit或git add时的状态。
注意:git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

删除文件

git rm test.txt   //删除文件
git commit -m ''  //提交一下
git checkout -- test.txt  //误删的可以恢复最新版本

分支管理

创建分支

git checkout -b dev   //创建dev分支并且切换到dev
//下两句同git checkout -b dev
git branch dev
git checkout dev
//
git branch    //查看所有分支
git merge dev  //合并dev分区到master上
git merge --no-ff -m "merge with no-ff" dev //合并分支表示禁用Fast forward
//合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
git branch -d dev //删除dev分支
git checkout master //完成工作后切换到master
//几步
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
冲突
git status    //查看冲突文件
git log --graph --pretty=oneline --abbrev-commit
bug分支
git stash  //可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支
git stash list  //查看储藏现场
//恢复现场
//一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
//另一种方式是用git stash pop,恢复的同时把stash内容也删了
git stash apply stash@{0}  //恢复指定的stash
Feature分支
//销毁没有(不能)合并的分支
git branch -d feature-vulcan  //销毁分支的时候提示没有提交不能销毁
git branch -D feature-vulcan  // -D 强制删除

分支管理策略

git remote -v //显示更详细的远程库信息
//显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址
推送分支
//就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
git push origin master
git push origin dev
//master分支是主分支,因此要时刻与远程同步;
//dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
//bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
//feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

抓取分支

git clone git@github.com:michaelliao/learngit.git
 //创建远程origin的dev分支到本地
git checkout -b dev origin/dev   
//另一个人对同样的文件作了修改
git push origin dev //推送失败
git pull  //也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接
git branch --set-upstream-to=origin/dev dev
//再pull,git pull成功,但是合并有冲突,需要手动解决,解决后,提交,再push
多人协作的工作模式通常
//首先,可以试图用git push origin <branch-name>推送自己的修改;
//如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
//如果合并有冲突,则解决冲突,并在本地提交;
//没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
rebase
git rebase //rebase操作的特点:把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。
忽略特殊文件
.gitignore文件  //把要忽略的文件名填进去,Git就会自动忽略这些文件
 git add -f App.class //强制添加
 git check-ignore -v App.class  //Git会告诉我们,.gitignore的第几行规则忽略了该文件

配置别名

 //status变成st
git config --global alias.st status 
git config --global alias.unstage 'reset HEAD' 
//reset HEAD'变成unstage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值