git 学习

git 学习笔记

git 管理 下的文件分为三种状态:

  1. 已修改
  2. 已暂存
  3. 已提交

以上三种状态分别对应工作区暂存区版本库
在这里插入图片描述

git 常用命令

#git 配置提交者的用户名和邮箱
git config --global user.name "example"
git config --global user.email "example.example.com"
#global是用来设置登录电脑用户层级
#local是用来配置项目级别的
#system是用来配置全局级别的
#将带删除的文件或修改从暂存区恢复到工作区
git reset HEAD <file>
#将工作区的丢弃修改
git checkout -- <file>
#查看日志
git log
#查看最近n条日志:
git log -n
#以一行的形式查看日志:
git log --pretty=oneline
#git 查看帮助
git help config
git config --help
man git -config
git 修改备注,假设前面写的备注不准确,可以使用如下命令进行更正:
git commit --amend -m "新的备注"

当我们在git 重命名一个文件时发生了什么?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从上面的一系列执行过程可以看出git mv oldname newname命名实际上做了两件事:

  • 删除原来的
  • 复制一个新的

用git mv命令,git还帮着做了一件事就是把这些改变纳入到了git的暂存区。如果想将重命名回退回来,可以通过上面的一系列命令实现。实际上可以看出在最后执行rm test.txt 命令,myGit目录下应该是有两个文件test.txt和test1.txt。

#git 查看分支:
git branch
#创建新分支:
git branch new_branch_name
#切换分支
git checkout branch_name
#在输入很长的命令时,可以通过以下两个命令切换光标到行首和行尾
CTRL+A
CTRL+E
vim中也可以通过SHIFT+A快速切换到行尾

git rm和git mv命令实际上都是调用了linux的命令rm和mv,只是多加了一步操作将这些修改纳入暂存区

2019年1月20日更新:

#git删除分支的语法为:
git checkout -d branch_name
#需要说明的是上面的-d仅仅能删除没有任何更改的分支,如果有修改那么需要用-D来强制删除
#将branch_name 合并到当前分支
git merge branch_name 
#HEAD指向当前的分支
#master指向mster分支上最近的提交
#解决冲突
#现在有两个分支master分支和develope分支,有一个文件test2.txt,里面只有一行hello java
#①在develope分支中的test2.txt分支中添加一行insert a line into develope branch“然后提交
#②在master分支中到的test2.txt分支中添加一行insert a line into master branch 然后提交
#③在master分支上将develope分支合并到master分支会出现冲突
#④手动解决test2.txt产生的冲突,打开test2.txt解决冲突
#⑤git add 和git commit 提交修改即可
root@chun:/opt/gitLearn# git merge develope
自动合并 test2.txt
冲突(内容):合并冲突于 test2.txt
自动合并失败,修正冲突然后提交修正的结果。
root@chun:/opt/gitLearn# git 
Hello java
<<<<<<< HEAD
insert a line into master branch.
=======
insert a line into develope branch.
>>>>>>> develope
~                                                                               
~                                                                               
~                                                                                                                                                        
"test2.txt" 6L, 119C 
root@chun:/opt/gitLearn# vim test2.txt 
root@chun:/opt/gitLearn# git status
位于分支 master
您有尚未合并的路径。
  (解决冲突并运行 "git commit")

未合并的路径:
  (使用 "git add <文件>..." 标记解决方案)

	双方修改:   test2.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
root@chun:/opt/gitLearn# git add test2.txt 
root@chun:/opt/gitLearn# git status
位于分支 master
所有冲突已解决但您仍处于合并中。
  (使用 "git commit" 结束合并)

要提交的变更:

	修改:     test2.txt

root@chun:/opt/gitLearn# git commit
[master 2512693] Merge branch 'develope'
root@chun:/opt/gitLearn# git status
位于分支 master
无文件要提交,干净的工作区
root@chun:/opt/gitLearn# 

下面分别是develope、master分支merge之前、master分支merge之后的日志。

#develop 分支的日志 

commit e5bfb98be95575f4e2d079eea5c5bc1b691d64c0
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:07:17 2019 +0800

    insert a line into develope branch

commit d921435e03831441a5e602b53b968f5925d29ba6
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:05:21 2019 +0800

    create a file

commit 55acd66ba88321a23f7aca9836161853e7ec1e4d
Merge: c2c3957 ce9be6b
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 12:59:41 2019 +0800

    Merge branch 'master' into develope

commit ce9be6bf246e86e912d590f866de80b9b9cd380a
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 12:56:47 2019 +0800

#master分支的日志

commit b19da91003cb0195661a3e122ed13f077b2669e9
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:09:34 2019 +0800

    insert a line into master branch

commit d921435e03831441a5e602b53b968f5925d29ba6
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:05:21 2019 +0800

    create a file

commit 55acd66ba88321a23f7aca9836161853e7ec1e4d
Merge: c2c3957 ce9be6b
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 12:59:41 2019 +0800

    Merge branch 'master' into develope

commit ce9be6bf246e86e912d590f866de80b9b9cd380a
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 12:56:47 2019 +0800


#master分支合并完develope分支的日志
commit 2512693b44eb5657af90c7c10d5206b182e415b8
Merge: b19da91 e5bfb98
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:31:02 2019 +0800

    Merge branch 'develope'

commit b19da91003cb0195661a3e122ed13f077b2669e9
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:09:34 2019 +0800

    insert a line into master branch

commit e5bfb98be95575f4e2d079eea5c5bc1b691d64c0
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:07:17 2019 +0800

    insert a line into develope branch

commit d921435e03831441a5e602b53b968f5925d29ba6
Author: chunbs <chunbs@ml.com>
Date:   Sun Jan 20 13:05:21 2019 +0800

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值