Git快速入门

如果你不想看长篇的Git教程,想快速了解Git的使用,那么本文可能会对你入门Git有所帮助。由于笔者用的是Windows系统,所以本文只写Git在Windows上的使用。
一、Git安装
去Git官网下载Git的安装程序,安装的过程我就不多说了,没啥好说的。
二、创建本地仓库
Git安装完成后有一个Git Bash,打开Git Bash。输入如下命令:
cd d:
mkdir learngit
cd learngit
上述命令表示切换到电脑D盘,然后创建一个learngit的文件夹并将目录切换到该文件夹下。不确定自己是否已切换到指定目录,可以使用pwd命令显示当前路径。
最后,输入git init命令创建并初始化版本库。初始化完后会在当前目录下生成一个.git的隐藏目录,一般情况下,Windows是默认隐藏带有隐藏属性的目录和文件的,但是可以通过设置让隐藏文件可见。使用ls -ah命令也可以直接看生成的.git目录
三、提交文件
在learngit文件夹下新建一个README.txt的文本文件,然后内容输入This is a README file.。然后输入 git add README.txt命令将文本文件添加进仓库,如果有多个文件,直接用空格隔开一次列出就可以了。接着使用git commit -m "add README file"提交操作。
四、提交修改
修改README.txt文件,将文件内容中的This改为It,使用git status查看仓库状态,显示绿色的文件已修改的状态,表示添加修改成功,接着使用git diff查看修改的内容,然后使用git add README.txt添加修改。最后使用git commit -m "modify README file"提交修改。
如果想查看提交记录,则可以使用git log命令。
五、创建SSH Key
在Git Bash中输入cd ~/.ssh命令查看根目录下有没有.ssh文件夹。如果能进入该文件夹,继续输入ls命令查看该目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可以不用创建SSH Key了。如果都没有,则用cd ~命令切回用户主目录,然后在Git Bash输入:
ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车。完了,在用户主目录下会生成id_rsa和id_rsa.pub这两个文件。可以用cat ~/.ssh/id_rsa和cat ~/.ssh/id_rsa.pub查看文件的内容。
六、在代码托管平台添加公钥
为了便于多人协作开发,一般我们会在远程服务器上建立一个远程仓库用来同步不同开发者的代码。这个远程仓库可以放在某一台电脑上,也可以直接使用第三方的代码托管平台。这里我们选择名气比较大的GitHub来做实验。
登陆你的GitHub帐户。然后点击头像 -> Settings -> 左边栏SSH and GPG Keys -> New SSH key。然后复制上面id_rsa.pub文件中的内容,粘贴进Key文本域内。 Title域,随便填一个都行。
最后,使用ssh -T git@github.com命令来验证这个Key是不是正常工作。如果命令输入后,Key是正常工作的,则打印如下信息:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
GitHub官方提供了一个非常好用的Git图形化客户端GitHub Desktop。
七、关联远程仓库
- 在GitHub首页,点击New repository创建一个仓库,具体创建步骤这里不做展开说明。
- 创建完成后,在该仓库的首页点击Clone or download->Use SSH->拷贝仓库SSH地址。我的创建的仓库地址是
git@github.com:DavidSheh/learngit.git - 在Git Bash中切换到本地仓库目录,然后输入
git remote add origin git@github.com:DavidSheh/learngit.git。实际操作时请将命令中的远程仓库SSH地址替换成你自己的。如果没有打印任何信息说明关联成功。 - 推送本地仓库内容到远程仓库。第一次推送master分支的所有内容可以使用
git push -u origin master命令。成功后,以后每次有修改后,可以直接用git push origin master命令推送了。
八、克隆远程仓库
如果本地没有远程仓库的项目,想从远程仓库克隆一个仓库到本地应该怎么做呢?
其实很简单,只需要用cd命令切换到想要存放项目的路径,然后直接执行git clone命令就行了,注意命令后面跟的是项目的URL地址。项目在GitHub上的SSH和HTTPS地址均测试成功。
到此为止,Git的操作环境已经熟悉的差不多了,只要能成功的在GitHub上提交代码,那么在国内的代码托管平台(如CSDN Code平台和Coding.Net)托管代码也是很容易的事。
九、Git 常用命令
熟悉了上面的操作后,通过举一反三,Git的其他操作都可以通过查命令文档来操作。下面附上一份常用的命令清单:
git init # 初始化本地git仓库(创建新仓库)
git config --global user.name "xxx" # 配置用户名
git config --global user.email "xxx@xxx.com" # 配置邮件
git config --global color.ui true # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy # remove proxy configuration on git
git clone git+ssh://git@192.168.53.168/VT.git # clone远程仓库
git status # 查看当前版本状态(是否修改)
git add xyz # 添加xyz文件至index
git add . # 增加当前子目录下所有更改过的文件至index
git commit -m 'xxx' # 提交
git commit --amend -m 'xxx' # 合并上一次提交(用于反复修改)
git commit -am 'xxx' # 将add和commit合为一步
git rm xxx # 删除index中的文件
git rm -r * # 递归删除
git log # 显示提交日志
git log -1 # 显示1行日志 -n为n行
git log -5
git log --stat # 显示提交日志及相关变动文件
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818 # 显示某个提交的详细内容
git show dfb02 # 可只用commitid的前几位
git show HEAD # 显示HEAD提交日志
git show HEAD^ # 显示HEAD的父(上一个版本)的提交日志 ^^为上两个版本 ^5为上5个版本
git tag # 显示已存在的tag
git tag -a v2.0 -m 'xxx' # 增加v2.0的tag
git show v2.0 # 显示v2.0的日志及详细内容
git log v2.0 # 显示v2.0的日志
git diff # 显示所有未添加至index的变更
git diff --cached # 显示所有已添加index但还未commit的变更
git diff HEAD^ # 比较与上一个版本的差异
git diff HEAD -- ./lib # 比较与HEAD版本lib目录的差异
git diff origin/master..master # 比较远程分支master上有本地分支master上没有的
git diff origin/master..master --stat # 只显示差异的文件,不显示具体内容
git remote add origin git+ssh://git@192.168.53.168/VT.git # 增加远程定义(用于push/pull/fetch)
git branch # 显示本地分支
git branch --contains 50089 # 显示包含提交50089的分支
git branch -a # 显示所有分支
git branch -r # 显示所有原创分支
git branch --merged # 显示所有已合并到当前分支的分支
git branch --no-merged # 显示所有未合并到当前分支的分支
git branch -m master master_copy # 本地分支改名
git checkout -b master_copy # 从当前分支创建新分支master_copy并检出
git checkout -b master master_copy # 上面的完整版
git checkout features/performance # 检出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933 # 检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout v2.0 # 检出版本v2.0
git checkout -b devel origin/develop # 从远程分支develop创建新本地分支devel并检出
git checkout -- README # 检出head版本的README文件(可用于修改错误回退)
git merge origin/master # 合并远程master分支至当前分支
git cherry-pick ff44785404a8e # 合并提交ff44785404a8e的修改
git push origin master # 将当前分支push到远程master分支
git push origin :hotfixes/BJVEP933 # 删除远程仓库的hotfixes/BJVEP933分支
git push --tags # 把所有tag推送到远程仓库
git fetch # 获取所有远程分支(不更新本地分支,另需merge)
git fetch --prune # 获取所有原创分支并清除服务器上已删掉的分支
git pull origin master # 获取远程分支master并merge到当前分支
git mv README README2 # 重命名文件README为README2
git reset --hard HEAD # 将当前版本重置为HEAD(通常用于merge失败回退)
git rebase
git branch -d hotfixes/BJVEP933 # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933 # 强制删除分支hotfixes/BJVEP933
git ls-files # 列出git index包含的文件
git show-branch # 图示当前分支历史
git show-branch --all # 图示所有分支历史
git whatchanged # 显示提交历史对应的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 # 撤销提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD # 内部命令:显示某个git对象
git rev-parse v2.0 # 内部命令:显示某个ref对于的SHA1 HASH
git reflog # 显示所有提交,包括孤立节点
git show HEAD@{5}
git show master@{yesterday} # 显示master分支昨天的状态
git log --pretty=format:'%h %s' --graph # 图示提交日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash # 暂存当前修改,将所有至为HEAD状态
git stash list # 查看所有暂存
git stash show -p stash@{0} # 参考第一次暂存
git stash apply stash@{0} # 应用第一次暂存
git grep "delete from" # 文件中搜索文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT
git gc
git fsck
十、参考资料
- 阮一峰老师的常用 Git 命令清单
- Git常用命令备忘
本文是笔者的学习记录,分享给大家,如有错误之处请多多指教。本文欢迎转载,但转载请注明作者和出处:Sheh伟伟的简书
Git快速入门的更多相关文章
- Git快速入门进阶篇
本文接着Git快速入门篇,继续探讨Git在管理项目中的一些应用. 远程仓库的使用 查看远程仓库 查看你已经配置的远程仓库服务器,可以运行 git remote 命令.指定选项 -v,会显示需要读写远程 ...
- git快速入门 push/clone/reset/merge/切换分支全都有
本文介绍git快速入门,从安装/创建init / 发布push/版本回退reset / branch分支切换/合并分支merge 这些基本的操作都有涉及,方便新人快速入手,有需要的朋友mark一下.首 ...
- Git 快速入门--Git 基础
Git 快速入门 Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 G ...
- Git快速入门和常用命令
一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...
- git 快速入门及常用命令
身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...
- git 快速入门
介绍git的基本知识.文件状态.工作区域以及一个简单的操作示例. 目录 1. git相关介绍 2. 文件状态与工作区域 3. 快速使用 1. git相关介绍 1.1 git.github.gitlab ...
- git 快速入门(二)
一.引子 git代码托管的优秀工具之一, 其工作原理和svn截然不同.一旦拥有主干master分支权限, 只要在本地拉取主干分支, 可以随时随地切换分支. 它拥有众多优点,eg :支持在断网的情况下, ...
- git快速入门(MAC系统,github,ssh key)
如果使用过svn的话,git大致可以认为是多了本地库的svn.git先本地提交commit到本地库,然后再push到远程服务器的库.git是分布式的代码管理工具,基于SSH协议.ssh的作用就是为了不 ...
- 版本管理·玩转git(快速入门git)
如果你用过Word文档写过文章,那么你一定会有这样的经历. 我觉得某一段或者某一句写得不够好,但是,删掉之后我可能会后悔把它删掉了,进而又想把删掉的段落找回来,这时,你想到了一个好办法,将每次的修改都 ...
随机推荐
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- C语言 · 数位分离
问题描述 编写一个程序,输入一个1000 以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示. 输入格式:输入只有一行,即一个1000以内的正整数. 输出格式:输出只有一行,即该整数的每 ...
- 如何在网页中提取Email地址
开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点 ...
- 设计模式之结构类模式大PK
结构类模式大PK 结构类模式包括适配器模式.桥梁模式.组合模式.装饰模式.门面模式.享元模式和代理模式.之所以称其为结构类模式,是因 ...
- C++内联函数
在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...
- Java实现Excel中的NORMSDIST函数和NORMSINV函数
由于工作中需要将Excel中的此两种函数转换成java函数,从而计算内部评级的资本占用率和资本占用金额.经过多方查阅资料和整理,总结出如下两个转换方法 标准正态分布累计函数NORMSDIST: pub ...
- Extjs 让combobox写起来更简单
也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了. 定 ...
- 树莓派 基于Web的温度计
前言:家里的树莓派吃灰很久,于是拿出来做个室内温度展示也不错. 板子是model b型. 使用Python开发,web框架是flask,温度传感器是ds18b20 1 硬件连接 ds18b20的vcc ...
- 说说BPM数据表和日志表中几个状态字段的详细解释
有个客户说需要根据这些字段的值作为判断条件做一些定制化需求,所以需要知道这些字段的名词解释,以及里面存储的值具体代表什么意思 我只好为你们整理奉上这些了! Open Work Sheet 0 Sav ...