Git入门学习

今日花费了一天时间终于算是把Linux的控制台玩了一下,学习了一下当下最流行的分布式版本控制系统git,推荐一个非常良心而且是免费的网址
https://www.liaoxuefeng.com/wiki/896043488029600
廖老师的讲解可谓针针见血,从最基本的概念到上手实战都十分易于接受,学习完这一份资料对于git也就算是有了比较基础的见解了,也算是了解到分布式控制相对于集中式控制的效率以及安全性之高,非常感谢廖老师的这份材料!
在这里插入图片描述在这里插入图片描述以下是我个人学习中的一些感受,有误之处还请指教。

首先什么是git呢?我个人的理解是一个记录“修改”的分布式版本控制系统,他可以记录每一次修改后的仓库内的文件的版本,而且不同的用户可以对同一个远程库进行修改,每个人手里都有着一个库的备份,这样既提高了效率,又保证了安全性,而且更重要的,git在本地是可以不需要联网进行操作的,这也使得灵活性大大提高。

总结一下的话,就像廖老师所说,git里面就这么多命令,掌握了基本就能玩转git
(1) 在Linux上安装Git
$ git
The program ‘git’ is currently not installed. You can install it by typing:
sudo apt-get install git
(2) 创建版本库
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
(3) 添加文件进入版本库
$ touch readme.txt
$ vim readme.txt
(进入修改界面后点i键进行修改,完成后点击esc键退出,使用:x进行保存)
$ git add readme.txt
$ git commit -m “wrote a readme file”
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
(这里顺带一提,每一次对文件进行改动的时候是在工作区进行的操作,如果想要保存到库中需要进行add和commit操作,add是把文件放入暂存区,commit才是真正把文件存入当前分支中,在之后的操作中如果没有进行add和commit操作,推送至远程库的文件是没有改动的。。。)
(4) 查看历史版本记录
$ git log
$ git log --pretty=oneline
(5) 回退上一版本
$ git reset --hard HEAD^
(注意如果回退上2个版本则是HEAD^^,上n个版本可用HEAD~n)
(6) 回退固定版本
$ git reset --hard <commit_id>
(注意这里的commit_id只需要键入git可以识别出是哪一版本的长度即可,无需全部键入)
(7) 查看命令历史
$ git reflog
(8) 查看当前状态
$ git status
(9) 查看工作区和版本库里面最新版本的区别
$ git diff HEAD –
(10) 丢弃工作区修改
$ git checkout – file
(11) 不但改乱了工作区某个文件的内容,还添加到了暂存区时
$ git reset HEAD (把文件放回工作区)
$ git checkout – file
(12) 已经提交了不合适的修改到版本库时
版本回退 ( $ git reset --hard <commit_id>)
(13) 删除文件
$ git rm (注意这里删除也是做了修改,所以删除后也要进行commit操作!)
(在文件管理器中可直接使用rm删除文件,但是这是删除的工作区的文件,版本库中的删除要使用?语句,如果误删了工作区的文件可以使用$ git checkout – 恢复)
(14) 关联远程库
$ git remote add origin git@server-name:path/repo-name.git
(15) 推送当前分支内容
$ git push -u origin master (第一次)
$ git push origin master (以后)
(注意这一步是需要联网的!)
(16) 从远程库克隆
$ git clone git@github.com:path/repo-name.git
(17) 分支操作
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
(18) 解决冲突
当两个分支同时进行了操作进行合并时可能会产生冲突。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图。
合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
(19) stash操作
stash 操作可以将当前分支的未完成工作暂存起来,然后等我们完成紧急事件后再继续原来的工作,有点像数据结构中的stack
$ git stash (隐藏当前工作)
$ git stash list (查看你被隐藏的工作)
$ git stash pop (恢复并在stash中删除该工作)
(20) 如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
(21) 多人协作
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
(22) 标签
命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a -m "blablabla…"可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin 可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d 可以删除一个本地标签;
命令git push origin :refs/tags/可以删除一个远程标签。

这些内容差不多可以涵盖入门级别git的所有操作了,其他操作还可以参考廖雪峰的资料,掌握这些你就可以自己去玩转git了~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值