menu Chancel's blog
rss_feed
Chancel's blog
我就是这样的人

愉快地使用Git系列01 - 了解Git

作者:Chancel, 更新:2019 Sep 25, 字数:2633, 已阅:731

这篇文章更新于 1349 天前,文中部分信息可能失效,请自行甄别无效内容。

Git几乎是当前主流的代码管理工具,随着语言的更迭,SVN/CVS也正逐渐成为历史

Git的文章很多,入门/精进更是数不胜数

本篇旨在作一篇Git的知识纲领,包括整理最常见的知识点以及问题

Git简介

Git (/ɡɪt/)[7] is a distributed version-control system for tracking changes in source code during software development.[8] It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed,[9] data integrity,[10] and support for distributed, non-linear workflows.[11]

Git是一个分布式版本控制系统,用于软件开发过程中源代码的更改...

本文系列用于整理基础知识点以及常见问题

如果你需要的是一份非常详细的Git资料库,可以参考Git的官方文档,这里已经包含非常详细的Git起源历史以及细致入微的操作方法

Git is a Free ... - git-scm.com

如果你更喜欢大白话一些,也可以参考廖雪峰老师的相关介绍(自行百度)

接下来开始,都是基于命令行的一些操作,可以自行尝试

本文所讲是Git最基础的操作,是开发人员必要掌握的

仓库

尝试初始化并创建一个仓库

git init
git add README.md

提交当前库

git commit -m 'first commit'

推送到远方仓库

git remote add origin http://example/chancel/example.git
git push -u origin master

如果绑定远程仓库地址错误,可以变更远程库的地址

git remote rm origin
git remote add origin http://example/chancel/example.git

基础

远程仓库文件的推送/拉取

git pull
echo 'hello,git' > README.md
git add README.md
git commit -m '[imp] update README.md'
git push

过滤不需要的文件

  • 在目录下建立.gitignore文件,忽略规则如下
    1. 忽略bin文件夹:/bin/
    2. 忽略zip压缩文件:*.zip
    3. 过滤指定文件:/mtk/system.dll
  • 然后重建缓存并提交文件
    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'
    

查看/回滚提交历史

# 限制一次提交只输出一行
git log --pretty=oneline
# 查看历史指令(有时候回滚版本之后需要知道新版本是提交了什么就可以使用该指令)
git reflog
# 回滚到上一个版本,HEAD是当前版本,HEAD^上一个版本,以此类推
git reset --hard HEAD^
# 回滚到指定版本,commitid可以只输入几位,会自动对应
git reset --hard [commit id]

丢弃工作区文件修改(两种方法)

git checkout -- [file_name]
git reset HEAD [file_name]

分支

创建并切换分支

# -b表示切换
git checkout -b dev

查看分支信息

# -a 表示all(全部,包含远程分支)
git branch -a
# 只查看远程分支
git remote -v

合并分支

git merge dev

关联远程分支到本地分支

git branch --set-upstream-to = origin/dev dev

拉取远程分支并创建为本地分支

git checkout -b master origin/master

删除分支

# 删除时不可位于删除分支
git branch -D dev

stash

stash意为隐藏,当你正在dev上奋发图强的时候,需要临时增加功能并紧急上线,你代码写一半提交不是删掉也不是,这个时候除了新开分支,也可以选择stash当前的修改

存储当前修改到stash

git stash

查看stash列表

git stash list

恢复stash状态

git stash apple
git stash pop

tag

多用于标志某个版本

查看所有tag

git tag

创建tag

git tag V1.0

给以往提交打tag

git tag v1.0 [commit_id]

带说明的标签

git tag v1.0 -m 'v1.0 program' [commit_id]

查看标签的详细

git show [tag_name]

推送标签

git push origin [tag_name]
# 推送所有标签
git push origin --tags

删掉标签

git tag -d v1.0
# 删掉远程标签
git tag -d [tag_name]
git push origin :refs/tags/[tag_name]

[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]
目录