git从入门到跑路

初接触git,整理一下对git的理解和认为会常用的一些知识点

0. 对git一些知识点的理解

你创建的那个文件夹就是你的本地仓库
仓库中的 .git 中的某个文件夹为暂存区
文件夹为你的工作区

1. 本地仓库初始化

创建本地仓库一定要在一个空的文件夹下创建,这个空的文件夹就是你的本地仓库,可以用以下两种方式初始化仓库
(1)可以使用 Git GUI 中的 Create New Repository 创建
(2)在 Git Bash 中输入命令 【git init】
创建好后会在当前文件夹下多一个.git文件,本地仓库初始化完成

2. 配置及查看账号

(1)配置换行符:
git config --global core.autocrlf false
git config --global core.safecrlf warn
(2)配置用户名邮箱:
git config --global user.name “name”
git config --global user.email “name@email.com”
(3)查看账号
git config user.name
git config user.email

3. 查看当前仓库的状态信息

当创建新文件或者对当前文件进行修改后,可使用命令 【git status】 查看当前仓库的状态信息,即仓库中的哪些文件进行了哪些修改
使用【git diff filename】查看修改的内容

4. 将文件提交至暂存区

使用 【git add filename】将文件添加至暂存区,注意文件名应当带后缀
当想将所有文件都提交至暂存区时可使用 【git add .】命令

5. 取消修改

commit之前想要取消提交,恢复到上一次的内容【git checkout 文件路径\文件名】

6. 将暂存区文件提交至本地仓库

使用【git commit -m “提交描述”】命令将文件提交至仓库

7. 查看日志

可以通过【git log】查看git日志,可以看到什么人在什么时间做了commit操作
【git reflog】命令可查看所有操作记录

8. 取消暂存

在commit之前可以使用【git reset filename】命令取消某文件的暂存
可以使用【git reset commitID】命令将版本跳转为commitID对应的版本
【git reset --hard commitID】返回到某个节点,不保留修改。
【git reset --soft commitID】功能是返回到某个节点。保留修改。
【git reset --soft HEAD^】 取消当前的commit

9. 创建新的分支

【git checkout -b name template】命令创建一个新的分支name为新分支的姓名,template指以哪个分支为模板,若不填则表示以当前分支为模板

10. 查看所有分支

【git branch】命令可以查看所有分支,高亮的目录表示当前分支

11. 合并其他分支的变更

【git merge】命令合并两个分支的变更

12. 克隆

【git clone url】将远程仓库的文件克隆至本地仓库

13. 推送

【git push】将本地分支的文件推送至远程仓库

14. 拉取

【git pull】将远程仓库的文件下载至本地分支

15. 备份与备份恢复

在pull之前或者切换分支时,本地有一些修改的,使用 【git stash】 进行备份
使用【git stash pop】将备份恢复,会自动进行合并操作

16. 合并

  1. git merge <分支名>
    将一个分支上 与 本分支上 共同的节点 之后 分离的节点 所有内容 合并到当前分支,git merge <分支名>
    该合并会创建一个记录合并结果的新节点,该节点带有用户描述合并变化的信息。
  2. git merge --abort
    该命令仅仅在合并后导致冲突时才使用。【git merge --abort】将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未 commit 的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未 commit 的文件在合并的过程中将会被修改时)
    警告:
    运行 git-merge 时含有大量的未 commit 文件很容易让你陷入困境,这将使你在冲突中难以回退。因此非常不鼓励在使用 git-merge 时存在未 commit 的文件,建议使用 git-stash 命令将这些未 commit 文件暂存起来,并在解决冲突以后使用 git stash pop 把这些未 commit 文件还原出来。

17. 基于其他分支的新提交

1)将其他分支的部分变动(某几个提交)应用于当前分支,当前分支会产生一个新的提交,当然哈希值(commitID)会不一样

【git cherry-pick commitID】

2)将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。

【git cherry-pick commitIDA commitIDB】
转移从 A 到 B 的所有提交(A 将不会包含在 Cherry pick 中)。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。
【git cherry-pick A…B 】
如果要包含提交 A,可以使用下面的语法。
【git cherry-pick A^…B】

3)配置项

git cherry-pick命令的常用配置项如下。
(1)-e,–edit
打开外部编辑器,编辑提交信息。
(2)-n,–no-commit
只更新工作区和暂存区,不产生新的提交。
(3)-x
在提交信息的末尾追加一行(cherry picked from commit …),方便以后查到这个提交是如何产生的。
(4)-s,–signoff
在提交信息的末尾追加一行操作者的签名,表示是谁进行了这个操作。
(5)-m parent-number,–mainline parent-number
如果原始提交是一个合并节点,来自于两个分支的合并,那么 Cherry pick 默认将失败,因为它不知道应该采用哪个分支的代码变动。
-m配置项告诉 Git,应该采用哪个分支的变动。它的参数parent-number是一个从1开始的整数,代表原始提交的父分支编号。
$ git cherry-pick -m 1
上面命令表示,Cherry pick 采用提交commitHash来自编号1的父分支的变动。
一般来说,1号父分支是接受变动的分支(merged别的分支),2号父分支是作为变动来源的分支(被 merged)。

4)代码冲突

如果操作过程中发生代码冲突,Cherry pick 会停下来,让用户决定如何继续操作。
(1)–continue
用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用–continue,让 Cherry pick 过程继续执行。
$ git cherry-pick --continue
(2)–abort
发生代码冲突后,放弃合并,回到操作前的样子。
(3)–quit

5)转移到另一个代码库

Cherry pick 也支持转移另一个代码库的提交,方法是先将该库加为远程仓库。
$ git remote add target git://gitUrl
上面命令添加了一个远程仓库target。
然后,将远程代码抓取到本地。
$ git fetch target
上面命令将远程代码仓库抓取到本地。
接着,检查一下要从远程仓库转移的提交,获取它的哈希值。
$ git log target/master
最后,使用git cherry-pick命令转移提交。
$ git cherry-pick

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值