博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git学习
阅读量:4987 次
发布时间:2019-06-12

本文共 3391 字,大约阅读时间需要 11 分钟。

learning the git

1.创建repository 版本库

在需要的文件夹下面直接

git init

2.时光穿梭机

1.版本回退

掌握工作区的状态,是否有修改 git status
查看修改的内容 git diff

对于已经 add commit的文件需要回到回退版本

第一步 查看git日志 git log
第二步 查看版本号 日志commit后面的数字
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD~100 前一百个版本

回退到上一个版本 git reset --hard HEAD^

重返未来,需要查看未来commitId git relog

git reset --hard commitId

2.工作区和暂存区

working directory and stage(index)

git add 添加文件 是将文件修改添加到暂存区

git commit 提交文件 把暂存区的所有内容提交到当前分支

每次的修改 如果不 git add到暂存区,那么不会加入到 commit

3.撤销修改

撤销(丢弃))工作区的修改 git checkout -- file
-- 这个很重要
git checkout file 表示切换到file branch 切换分支

unstage 暂存区的修改撤销掉 git reset HEAD file

git reset 既可以回退版本,也可以暂存区回退到工作区

4.删除文件

两种删除方式
在文件管理器中 rm file
git add file 和 git rm file 是相同的结果

git rm file git commit

误删除

将版本库的文件替换工作区的文件,一键还原

git checkout -- file

如果你用的rm删除文件,那就相当于只删除了工作区的文件,

如果想要恢复,直接用git checkout -- 就可以

如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,需要先git reset HEAD ,

然后再git checkout --

如果你想彻底把版本库的删除掉,先git rm,再git commit

3.远程仓库

链接远程仓库

git remote add origin git@github.com:Geekdengshuo/repositoryName.git

本地库推送到远程仓库

git push -u origin master 第一次推送

git push origin master 推送

克隆远程仓库到本地

git clone git@github.com:Geekdengshuo/repositoryName.git

使用ssh原生的git命令 要比https要快很多

4.分支管理

1.master分支

master分支是一条主线,master指向最先的提交,HEAD指向master

2.创建和删除分支

创建分支并切换到分支 git checkout -b dev

相当于两个步骤 创建分支 git branch dev
切换分支 git checkout dev

查看当前分支 * 表示当前分支 git branch

可以在当前分支dev继续提交 此时HEAD指向 dev dev向前移动

切换到主分支 git checkout master

将分支dev合并到master git merge dev

合并后可以删除分支 git branch -d dev

删除远程分支 git push origin -d

git push origin:
3.解决合并冲突

master分支和 dev分支都有更新 git无法实现快速合并

查看分支合并情况

git log --graph 查看分支合并图

git log --graph --pretty=oneline --abbrev-commit

4.分支管理策略

分支合并 git merge 如果可能 git会使用 Fast forward方式

这种方式删除分支,会丢掉分支信息

可以使用 --no-ff 模式 表示禁用Fast forward模式

git merge -no-ff -m "merge with no-ff" dev

-m 添加 commit 描述

5.bug分支

修改master分支bug 但当前dev分支还没有提交

git stash 将当前工作“隐藏”起来

修改完后,恢复到当前dev分支进行恢复

git stash list 查看列表

git stash apply 恢复,并不删除

git stash drop 删除

git stash pop 恢复同时把stash 内容删除

6.feature 分支

新建特征分支,再将特征分支合并到主分支上

强制删除 分支

git branch -D feature-branch

7.多人协作

远程库信息 git remote

远程库相信信息 git remtoe -v

推送分支 git push origin master

推送其他分支 git push origin dev

master 主分支必须推送

dev 开发分支需要远程同步
bug分支只是本地修复bug,没有必要推送到远程
feature 分支看是否进行合作

抓取分支

小伙伴进行协同开发
1.git clone 仓库
2.git branch 只有master分支
3.git checkout -b dev origin/dev 创建远程origin的dev分支到本地
4.git add git commit 进行修改
5.git push origin dev 将dev分支push到远程

小伙伴进行修改

你也对dev分支进行了修改

1.git add git commit

2.git push origin dev 你的push和小伙伴有冲突
3.git pull git pull 先把最新的提交从origin/dev抓下来4.git pull 失败
本地dev分支和远程 origin/dev分支没有链接,根据提示设置链接

5.git branch --set-upstream-to=origin/dev dev

6.git pull
合并有冲突 解决冲突
7.git commit -m "" 提交
8.git push origin dev

8.rebase

rebase操作可以把本地未push的分叉提交历史整理成直线
rebase的目的是使得我们在查看历史提交的变化时更容易,
因为分叉的提交需要三方对比

git rebase

5.标签管理

标签是版本库的一个快照,将版本库打一个标签 tag

tag就是一个commit tag 的标号比commit更好找

tag v1.2 commit 6a5819e

创建标签

切换到需要标签的分支上 git branch
git checkout master
打标签 git tag v1.0
查看标签 git tag

对commit进行打标签 git tag v0.9 f52c633

带有说明的标签 git tag -a v0.1 -m "version 1.0 released" 1094adb

查看标签信息 git show v0.1

删除标签 git tag -d v1.0
标签推送远程 git push origin v1.0
推送全部标签 git push origin --tags

删除远程标签

先删除本地 git tag -d v0.9
远程删除 git push origin:refs/tags/v0.9

使用Github

参加一个开源项目

1.向访问其他的主页,看到项目主页 进行fork
2.fork后在自己仓库克隆一个
3.从自己github clone代码到本地 必须从自己的github克隆这样才有权限推送修改

4.发送一个 pull request 看作者是否接受你的修改

参考文档

转载于:https://www.cnblogs.com/GeekDanny/p/10880444.html

你可能感兴趣的文章
栈和队列
查看>>
db2 数据库配置HADR+TSA添加集群节点
查看>>
event Flow
查看>>
[Linux]Ubuntu设置时区和更新时间
查看>>
Caesars Cipher(算法)
查看>>
Codeforces Round #311 (Div. 2) E. Ann and Half-Palindrome 字典树/半回文串
查看>>
Codeforces Round #115 B. Plane of Tanks: Pro 水题
查看>>
BZOJ 2648: SJY摆棋子 kdtree
查看>>
Entity Framework
查看>>
第一阶段结对作业验收小学生四则运算
查看>>
理解python可变类型vs不可变类型,深拷贝vs浅拷贝
查看>>
添加数据库的Maven依赖(SqlServer,Oracle)
查看>>
Python Revisited (变量)
查看>>
从本质看海明码——海明码的由来
查看>>
线段树+等差/等比
查看>>
实验二
查看>>
while循环与for循环
查看>>
用Wininet来下载文件
查看>>
Fedora 安装下载加速插件
查看>>
Leetcode:647. Palindromic Substrings
查看>>