git命令的使用

git命令的使用

初始化仓库

  1. git init //初始化仓库(本文件) git init yourdir(指定文件)

初始化仓库之后就可以看到文件夹之中生成了一个隐藏的文件 .git
仓库会记录你所有的变更行为

提交 Commit

  1. git status 查看当前仓库的状态信息
  2. git add 将文件加入暂存区 该文件会变绿(之前为红色)
  3. git add . 可以将所有文件都加入暂存区
  4. 提交变更 gti commit -m <信息>
  5. git log 查看日志 可以看到什么人什么时间提交了一个什么commit(-m 的信息)

每一个commit都可以生成一个16进制的值 commit xxxxxxxxxxxxxx (HEAD -> master) ==

  1. 修改一个文件之后 git status 会看到该文件变为了红色 (红色的文件代表着有新的变更)

之后重复 添加暂存区 提交一个commit 通过log可以查看到已经提交了

  1. 当你变更文件时 需要通过git add 将变更的文件添加到暂存区(让文件变绿),再使用commit 提交这一次的变更到仓库

git commit 只提交那些绿了的文件,也就是 git add 添加到暂存区的文件

add 之后后悔了

  1. git reset

add之后后悔了,觉得这次提交不该包含它。 在commit之前,可以使用git reset 将绿色的文件重新变为红色(将文件从暂存区释放出来)

文件的状态 (Untracked Unmodified Modified staged)

新建一个文件时,文件处于Untracked状态

  1. Untracked 通过 add Staged
  2. Staged 通过 commit Unmodified
  3. Unmodified 通过修改文件 Modified
  4. 如果文件有过commit记录 则它的状态为 Modified
  5. 已经commit的文件内容和现有的文件内容之间对比 如果是一致的则为Unmodified (只要文件提交过,状态就是Unmodified)

git 的alias 可以自定义参数的写法

回退

  1. 如果你想要回退到某次提交时的内容 可以通过 git reset --hard
  • git reset的参数 --hard 不保存所有变更 --soft 保留变更且变更内容处于Staged --mixed 保留变更且变更内容处于Modified
  • 如果git reset的参数不写 默认为 --mixed

回退之后回退前的git log记录消失了
如果后悔了怎么办? 此时的 git log 已经不显示最新的版本了
这是可以使用 git relog查看所有的记录
还有一种方法就是 git pull

  1. 使用全部和前七位都是可以的

分支

  1. master 初始化仓库是自动生成的一个默认分支 通常master作为主分支
  2. git checkout -b 创建新的分支 name为新分支的名字 template为指定哪一个分支或者commit为模板 如果第二个参数不填,则使用当前分支为模板

模板是什么? 分支之中的commit会记录在当前的分支,如果我们以这个分支为模板,新建一个分支,该分支的commit记录会继承模板分支的 创建分支之后,各个分支之间的改动都和其他分支不再有关系

  1. 使用 git checkout master 可以切回master分支
  2. git branch 查看所有分支 高亮的分支表示我们当前所处的分支

使用切换分支来切换不同的版本很方便

合并(Merge)

  1. 有时候我们需要合并其他分支的变更 可以使用 git merge 合并分支变更(分支的变更,而不是分支的内容)
  2. 合并代码之后可能会产生冲突,此时需要你手动或者通过其他IDE来解决冲突
  3. 流程:master切出一个分支为1.0.0 小a从1.0.0切除一个分支 然后修改代码,提交 。小b也从1.0.0切除一个分支 然后修改代码,提交 。然后我在1.0.0分支合并代码 解决冲突,然后在提交commit

远程仓库(Remote)

  1. 远程仓库作为中央仓库来管理所有的分支
  2. 使用git clone 将远程仓库下载到本地
  3. 使用git push 推送到远端仓库

git push -set-upstream origin bc-a 表示设置上流分支 将远端仓库的bc-a分支作为本地bc-a分支的上流分支 远端仓库没有bc-a分支则新建一个bc-a分支给远端仓库

  1. git fetch 拉取远程仓库信息 然后可以获取远程仓库的分支 然后就可以切换远程仓库有而本地没有的分支
  2. 如果本地切的分支在远程仓库上 那么 git checkout -b origin 需要加上origin

git pull

  1. 当远程仓库的一个分支修改之后,想要在本地也得到相应的修改
  2. 先 fetch 再 merge

变基(Rebase)

  1. 重新排列 commit 采用枚举重新排列
  2. master 为 1-2 bc为master切下来的分支 bc 为 1-2 master修改了变为 1-2-5 bc修改为 1-2-3-4
  3. 通过rebase可以重新排列commit 变为 1-2-5-3-4
  4. git rebase master 解决冲突 然后 git rebase master --continue 继续排列下一个分支commit

原文地址:https://www.qianqianhaiou.cn/index.php/archives/59/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值