git入门及命令行使用---git ? 盘TA!

git作为现在世界上最先(NIU)进(B)的分布式版本管理器,今天我们就来盘一盘具体的入门,以及作为一些小白运维,如何在和开发沟通的时候,不被他们的  “高级”  概念忽悠,话不多说,上图先:

 

 

话不多说,上干货:

基础概念:

1:Workspace:工作区(你自己本地电脑上代码的目录)
2:Index / Stage:暂存区
3:Repository:仓库区(本地仓库,无网络连接远程仓库的时候把代码提交到这里)
4:Remote:远程仓库

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上,每个人的电脑都有一个完整的版本库,比如说自己在电脑上改了文件X,其他人也在电脑上改了文件X,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

 

Git命令行:

1:把这个目录变成git可以管理的仓库

mkdir example

cd example

git init

2:将代码添加到暂存区里(index)面去

git add test.py

3:用命令 git commit告诉Git,把文件提交到仓库

git  commit -m "这是一个注释,嘻嘻!"

4:已经提交了一个test.py文件了,我们下面可以通过命令git status来查看是否还有文件未提交

git  status

"回显 nothing to commit表示提交完毕"

5:我想看下readme.txt文件到底改了什么内容,如何查看呢?

git  diff  test.py

6:现在想查看下历史记录,如何查呢?

git log

7:版本回退

回退到上一个版本

git reset  --head HEAD^

回退到倒数第二个版本

git reset  --head HEAD^^

回退到倒数第100个版本

git reset --hard HEAD~100

8:获取到版本号

git reflog

回显第一列为版本号,最后一列为描述

9:回退到某个版本号

git reset --hard  版本号

版本号为8所查出来的第一列

10:git撤销修改和删除文件

git checkout -- file 可以丢弃工作区的修改,如下命令:
git checkout -- test.py

git checkout --readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:

1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态

注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了

11:创建分支

git branch 分支名

12:删除分支

删除分支: $ git branch -d 分支名
删除分支:git branch -D 分支名(不管它有没有merge)
ps:  前提是先要切换到其他分支,否则报错

error: The branch '0101' is not fully merged.
If you are sure you want to delete it, run 'git branch -D 0101'.

13:git push命令用于将本地分支的更新,推送到远程主机

git push <远程主机名> <本地分支名>:<远程分支名>

 

git stash用法

1:git stash
保存所有未提交的修改,用于后续恢复workspace

2: git stash save "stashname"
给每个stash加一个tag,用于记录版本

3:git stash pop / git stash apply
恢复最新缓存的工作目录(第一个),并删除缓存堆栈中的那一个stash删除(pop), apply则只恢复不删除

4:git stash list
查看现有所有stash
在使用git stash pop(apply)命令时可以通过名字指定使用哪个stash,默认使用最近的stash(即stash@{0})

5:git stash drop
移除最新的stash,后面也可以跟指定stash的名字

git checkout切换分支

1: git checkout -b newBranchName
Switched to a new branch 'newBranchName'

这相当于执行下面这两条命令:
git branch newBranchName
git checkout newBranchName(工作区一定要是clean的)

2: git checkout -b newBranchName remote_branch_name
拉取远程分支remote_branch_name创建一个本地分支newBranchName,并切到本地分支newBranchName,采用此种方法建立的本地分支会和远程分支建立映射关系。

git checkout 回退修改

git checkout -- fileName
这条命令把fileName从当前HEAD中检出,也就是回退当前工作区的这个文件的修改
--可以省略不写

如果需要回退工作区的全部文件修改,可以使用:
git checkout --hard HEAD

而不需要对每个文件进行checkout

git revert

反转提交, 撤销一个提交的同时会创建一个新的提交,也就是用一个新提交来消除一个历史提交所做的任何修改.

git revert commit-id revert指定的一个commit
git revert HEAD~3 revert指定倒数第四个commit

revert过程有可能遇到冲突,要么git revert --abort终止此次revert操作,代码还原至revert命令前。要么手动消除冲突(同普通的冲突解决),然后add commit



 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值