Git的顺序梳理

快速入门:这里

Git的撤销与回滚:这里

AndroidStudio种的Git配置与使用:这里

19个基础步骤,快速梳理Git操作。


1.Git配置作者信息:

git config --global user.email 'xxx'

git config --global user.name 'xxx'

--global是全局,可以去掉他就是局部的。注意实际使用中全局与局部的优先级。

2.创建新仓库:

git init

维护旧仓库:

git clone ....git

3.Git流水线操作:

//初始化仓库
git init 
//查看状态
git status
//添加到暂存区
git add .
//提交到版本库
git commit -m 'xxx'

4. .gitignore[配置忽略文件]:

在该文件中配置不想监测的文件。文件夹里必须要有文件,否则不跟踪本文件夹。

创建.gitignore文件,然后假如我不想提交a.txt,就把a.txt写进去,或者*.txt代表所有txt文件都不提交。如果说,除了a,其他的都不提交,就!a.txt。

5.版本库中删除资源:

//默认版本库和本地的文件都会删除
git rm xxx 


//只删除版本库中的,不删除本地的
git rm --cached xxx

6.版本库中修改文件的名称:

假如说我想修改版本库中的a.txt重命名为b.txt
git mv a.txt b.txt

修改后别忘记add 并commit哦

7.通过日志查看历史操作:

//通常
git log 

//查看日志及其变动信息
git log -p

//查看最近的n次提交【n换成具体的整数】
git log -p -n

//精简显示
git log --online

//查看那些文件发生了变化
git log --name-only

//查看哪些文件发生了变化以及文件什么类型的变化【例如A增加  M修改】
git log --name-status

8.使用amend修改最新一次提交事件:

git commit --amend

9.管理暂存区中的文件:

add后,我后悔了,从暂存区中撤销这个文件

(1):针对第1次放入暂存区的文件:

git rm --cached xxx

(2):针对2次及以上放入暂存区的文件:

git reset HEAD 暂存区中的文件名

恢复到上一次提交的内容:

git checkout --文件名

10. -alias命别名:

比如git add 命令,我想用自定义的git a来表示。

git config --global alias.a = add

当然,你完全可以打开配置文件,然后在配置文件里手动添加配置,而不是通过长串的命令。

11.分支:

默认是master主分支。【HEAD是指针,指向当前所在的分支。这里提醒一下,commit后才有分支哦!】

  • 创建新分支:git branch 分支名
  • 切换到某分支: git checkout 分支名
  • 查看当前所在的分支: git branch
  • 综合方式【创建并切换到新的分支】:git checkout -b 新分支名
  • 分支的合并:git merge 被合并的分支名
  • 分支的删除: git branch -b 分支名

11.1 处理分支冲突:【不同的分支修改同一文件造成的不同】

假设有2个分支,修改了master上的一个文件,他们都修改了a.txt,但是修改的内容不同。合并其中一个的时候没问题,合并剩下的一个的时候会造成冲突。这时就需要mater的开发者自己处理不同的文件内容,自己决定保留那部分内容。

比如:

<<<<<<<<HEAD
测试1
==============
>>>>>>>>>>另一个分支名
测试2

这时,我修改为如下,该删的删:

测试1
测试2

然后add commit 一下。

11.2 分支管理:[--merged 与 --no-merged]及分支强制删除操作:

  • 查看已经合并的分支:git branch --merged
  • 查看未合并的分支: git branch --no-merged
  • 强制删除分支【这是针对于未合并到master的分支是不能用git branch -d 删除分支的】:git branch -D 分支名

11.3 Stash临时储存区:

这个的作用是add后,文件修改一半临时i想要切换到其他分支,且此时因为没做完不想commit。

git stash

这个命令的作用是立马切换到其他分支,会被不允许这样就可以把当前工作状态缓存起来。

然后通过

git stash list

这个命令可以查看临时存储区。然后就可以正常切换到其他分支。

最后再回到该分支,恢复暂存区:

git stash apply

【stash临时存储区依然存在】

//删除对应索引的临时存储区。
git stash drop stash @{0} 

//这里的0是相对于git stash list 的索引

恢复存储区后没用了可以直接删除:

git stash pop

【git stash 必须要先add到暂存区,即要在add / commit后(跟版本库关联后)才能使用。】

 

12.TAG标签:

某一阶段的阶段总结或者声明。这个阶段一定是正式完成的且是稳定的版本。

  • 显示当前标签的列表:git tag
  • 打标签: git tag 标签名   【例如:git tag v1.0.0】
//设置并上传tag
git tag -a 'tag...' -m 'description...'
git push --tags

//查看存在的tag
git tag -l

//切换到某个tag
git checkout tag_name

13.生成zip代码发布压缩包:

git archive master --prefix = 'xxx/' --forma=zip > xxx.zip

master是指的master分支,prefix的值是压缩后的文件夹的名字

14.rebase操作:

该命令很简单:

git rebase master

但是需要仔细理解一下。

该命令用于希望时间线不要有分支操作(commit等)。如果产生冲突的时候希望分支作者自己解决冲突,而不是mater开发人员去解决。一个很好的例子就是开源项目,一位coder助力提高项目,然后commit发现和master产生了冲突。【其实本质就是mater分支的时间线与子分支的时间线不同步的问题】

这是个人项目的操作情况:【master分支没任何变化】

但是开源项目等:【master变化,子分支也变化,2者不同步】

图解:为了解决这个冲突,肯定要移动master或者test分支保持到最新的同步时间线上。这里当然是子分支的移动。

 

通过如下命令实现移动test分支到最新:
git rebase master

然后合并冲突
git merge test

15.clone然后自动与远程服务器关联:

git clone ...


cd ....

//显示master分支了

git push 

//推送到远程

16.本地版本库主动使用remote与远程github关联:[本地作为主角和上面的15比较,他们的主动方不同]

git init

git commit -m ''


本地与远程关联:
git remote add origin  .....git


然后想服务器推送代码到master分支
git push -u origin master

当出现如下错误时:

使用git push origin master

如果还是错误,建议您pull到本地然后推送

git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

17.本地分支与github远程分支同步:

  • 显示远程分支: git branch -a 

例如,git checkout -b test

*test

master 

远程分支

这时推送会报错fatal:当前分支未与远程分支进行关联:

git push --set-upstream origin test

18.远程分支的删除:

  • git push origin --delete 远程分支名

删除本地分支:

  • git branch -d 分支名

19.git的自动部署:[官方说明:webhook实现自动部署]

jenkins、linux的定时部署等都可以。

  • 先配置github的钩子hook
  • 构建web服务器上的请求文件的代码[假设web服务器有webhook.php文件。具体代码Google吧]

 

这里简单提一下配置github的hook:

选择一个仓库:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒不了的星期八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值