git学习笔记整理

学习git

git工作区和本地仓库

  1. 创建本地版本库
mkdir learnGit
cd learnGit
git init
  1. 添加到暂存区
touch learn.md
open learn.md
git add learn.md // 把工作区修改内容添加到暂存区
git commit '创建了一个learn文件' //commit 只提交添加到暂存区的修改
touch more.md
touch three.md
git add .
git commit '创建了两个新文件'
  1. 查看工作区和暂存区状态
git status
git diff //查看具体不同的地方在哪
  1. 查看git提交历史记录
git log
git log --pretty=oneline //精简git日志

通过指定提交记录在git中移动

git checkout f2dhex //通过节点hex值移动HEAD
//相对引用
git checkout master^ //让HAEAD指向master的上一个提交节点
git checkout master^^ //让HAEAD指向master的前两个提交节点
git checkout master~3 //让HAEAD指向master的前三个提交节点
git branch -f master HEAD~3 //将 master 分支强制指向 HEAD 的第 3 级父提交。
  1. git回退版本(工作区和暂存区没提交到本地仓库的内容会丢失)
// 回退版本的前提是你还没有提交到远程仓库
git reset --hard HEAD^ //回退到上一个版本 HEAD^^ 回退到上两个版本
git reset --hard 103a4d //到指定版本

  1. git查看历史命令日志
git reflog
  1. git工作区和版本库
    图片
  2. git撤销修改
git checkout -- learn.md  //只撤销工作区的修改,不会撤销添加到暂存区的修改
git reset HEAD <file> //把暂存区的修改撤销掉(unstage),重新放回工作区:
  1. git删除文件
//工作区手动删除了一个文件,让版本库和工作区保持一至、
rm more.md
git status
git rm more.md
git commit -m '删除了文件more.md'
// 工作区误删文件,用版本库的恢复回来
git checkout -- three.md  //git checkout其实是用版本库里的版本替换工作区的版本

git远程仓库

  1. 同步远程仓库
// 远程仓库并添加密钥
    1. ssh-keygen -t rsa -C "wjsanshaoyan@163.com"
    2. 找到/Users/wangjing/.ssh/id_rsa.pub
    3. 复制粘贴里面全部内容到gitee的SSH
    4. ssh -T git@gitee.com(第一次输入yes,让gitee把我们的密钥记录下来,测试匹配成功没
// 关联远程仓库
    git remote -v  //看看有没有关联的远程仓库
    // 有 比如是origin
    git remote rm origin //删除已关联的名为origin的远程库
    git remote rename origin(以前的名字) oschina(要修改的名字) //修改远程仓库名字
    git remote set-url origin 仓库地址 //修改仓库对应的远程仓库地址 
    // 没有
    git remote add gitee git@gitee.com:wangjing5676/learnGit.git //再关联码云的远程库
    git remote add github git@gitee.com:wangjing5676/learnGit.git //还可以再关联github的远程仓库
// 关联好以后
    git clone git@gitee.com::wangjing5676/learnGit.git [自定义名字] 
    git pull gitee master //[git pull相当于git fetch和git merge的合并](https://blog.csdn.net/riddle1981/article/details/74938111)
    git pull gitee master --allow-unrelated-histories //容许合并不相关历史 
    git push -u gitee master //把本地提交推送到远程仓库(-u表示跟踪远程分支,下一次直接git push)

git本地分支

  1. 分支
git checkout -b dev // 加上-b相当于新增并切换到dev分支
git branch //查看分支
// 现在提交的内容在dev分支上
git checkout master //切换到master分支
git merge dev //把dev分支合并到master分支(实际上就是把master指针指向了dev分支最新提交)
git branch -d dev //合并完成可以删除dev分支
cat.git/HEAD //查看HEAD指向
git symbolic-ref HEAD //如果 HEAD 指向的是一个引用,还可以用 git symbolic-ref HEAD 查看它的指向
  1. 解决冲突
git checkout -b 分支名  //创建宾切换到新分支
// ...修改些内容
git checkout master //切换回master
// ...修改些内容
git merge 分支名 //合并
// ...冲突产生,手动合并
git add .
git commit -m 'conflict fixed'
git log --graph //看到分支合并图
git branch -d 分支名 //删除这个分支
git merge --no-ff -m "merge with no-ff" dev //--no-ff表示普通合并,合并后会提交一次,合并后的历史有分支,能看出来曾经做过合并
  1. bug分支
// 当前正在dev上进行的工作还没有提交,来了一个bug修复任务
git stash //把当前工作现场“储藏”起来,等以后恢复现场后继续工作
// 如果bug在master分支,切换到master分支再创建bug分支,改完bug合并到master删除bug分支,最后切换回到dev继续开发
git stash list //查看工作现场存储列表
// 恢复工作现场
    git stash apply stash@{0}//恢复  加上stash@{0}可以指定多个存储的其中一个
    git stash drop //删除stash
    git stash pop //恢复的同时把stash内容也删了
  1. 试验功能分支(随时有可能整个模块二删除的)
git branch -D <name> // 丢弃一个没有被合并过的分支用git branch -D <name>强行删除
  1. 多人协作
// 把该分支上的所有本地提交推送到远程库,推送时要指定本地分支。
// 这样,Git就会把该分支推送到远程库对应的远程分支上
    git push gitee master 
    查看远程库信息,使用git remote -v;
// 步骤
    1. 本地新建的分支如果不推送到远程,对其他人就是不可见的;
    2. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
    //git pull origin master:brantest 将远程主机origin的master分支拉取过来,与本地的brantest分支合并。
    // 冒号可以省略,本地分支不添加表示当前分支
    3. 在本地创建和远程分支对应的分支,使用git checkout -b gitee/<branch> dev,本地和远程分支的名称最好一致;
    4. 建立本地分支和远程分支的关联,使用git branch --track gitee/<branch> dev是创建一个新分支,并关联;git branch --set-upstream-to=gitee/<branch> dev 建立本地和远程关联
    5. 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值