git学习 c的某位老哥的,(侵删)

Git命令行基本操作

  1. 安装Git

    网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GITK。

  2. Git基本配置

    git config可以配置git的参数,可以使用git config --list查看已经配置的git参数。其中有三个级别的保存位置,--system、--global、--local,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用--local。

配置用户名及邮箱

在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。

git config --global user.name "Tocy"

git config --global user.email [email protected]

其他配置

如果在windows下建议还是配置下默认文本编辑器core.editor和差异分析工具merge.tool。

  1. 创建Git仓库

    可以直接调用git init初始化当前目录,即创建Git仓库。

  2. 获得Git仓库

    如果需要克隆远程仓库,可以使用git clone,比如:

git clone https://git.oschina.net/Tocy/SampleCode.git

  1. 提交更新

    在windows下的Git GUI中,提交很简单,右键-TortoiseGit-Commit。那么命令行下需要怎么处理?

    Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:

commit <-- stage <-- modify

commit --> --- --modify

我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a,a的状态变成staged;如果使用git commit,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。

当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add可以把未跟踪状态变更为staged;通过git rm可以将staged或者committed状态变为未跟踪状态。

git status

通常提交前先检查下修改了什么内容,当前Git目录下各文件的状态。

$ git status

On branch master

Initial commit

Untracked files:

(use "git add

    Readme.md

nothing added to commit but untracked files present (use "git add" to track)

git add

git add可以添加文件或者目录,也可以使用通配符。比如:

git add Readme.md # add file only

git add *.cpp # add all cpp files

git add /home/code/ # add all files in /home/code

git diff

git diff可以查看当前目录的所有修改。

提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff导出PATCH做代码走读。

可以使用git diff --staged或git diff --cached查看staged与上次提交快照之间的区别。

git commit

提交前需慎重。直接调用git commit会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。

针对单行日志提交的情况,可以使用如下命令:git commit -m "add readme"。

还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a(使用这个命令前建议确认下当前目录的修改是否正确、必须)。

git rm

git rm会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用git rm --cached readme.md。

  1. 提交历史查看

    可以使用git log查看当前工程的所有提交的日志。

git log --stat # 仅显示摘要选项

git log --pretty=oneline # 定制记录格式

git log --graph # 图像化分支和版本更新

  1. 撤销更新
  2. 远程仓库

    可以使用git remote查看当前的远程库。

    git remote -v可以显示对应的克隆地址。(对于多个远程仓库很有用)

添加远程仓库

git remote add short_name可以添加新的远程仓库。

从远程仓库抓取数据

git fetch [remote-name]可以从远程仓库抓取数据到本地。

也可以使用git pull

推送数据到远程仓库

git push remote_name

默认使用origin和master。

查看远程仓库信息

git remote show origin

远程仓库的删除和重命名

git remote rename old_name

git remote rm [remote_name]

  1. 打Tags

    可使用git tag显示当前库中的标签。

添加标签(含附注)

git tag -a v0.1 -m "my version 0.1"

使用如下命令查看Tag日志信息(指定对应标签的名字)

git show v0.1

也可使用SHA-1的提交表示创建tag:

git tag -a v0.2 [SHA-1] -m "my version 0.2"

分享标签

默认的,git push不会推送标签信息到远程仓库,需要通过命令显式推送。

git push origin v0.1

如果需要推送所有标签,使用

git push origin --tags

  1. Git分支

    git分支是轻量级的,速度很快,仅记录索引信息。

显示所有分支

使用git branch可显示当前所有分支。

可以使用--merged和--no-merged查看已经合并、未合并的分支。

创建及切换分支

可以使用下面命令直接切换并创建分支

git checkout -b testing

等价于

git branch testing # 创建testing 分支

git checkout testing # 切换到testing分支

注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。

分支合并

将hotfix分支合并到master(主分支)上,需要通过下面命令:

git checkout master

git merge hotfix

合并之后可以使用git branch -d hotfix删除分支。

如果合并时存在冲突,需要手工修改。

原文地址:https://www.cnblogs.com/xiangbei400G/p/9742196.html

时间: 2024-10-30 10:56:34

git学习 c的某位老哥的,(侵删)的相关文章

送给学习java架构师的老哥年轻羞涩的网恋爱情

9102年了,打开知乎大家还是在讨论网恋靠不靠谱,网恋算爱情吗,网恋奔现是什么感觉,网恋能不能不见面....我就有恍如隔世之感,好像大家对网恋还是充满质疑的. 现实中也是如此,本人母亲就有网恋就是瞎玩的论断,因为她网恋过,然后被骗了三千块.那是2003年的三千块,这是母亲的黑历史,我一般不告诉别人. 其实我网恋过几次,我也一度对自己的爱情产生过质疑,这是爱情吗?做别人的手机宠物,好丢人啊.情人节别人都拉着手在街上玩,我对着手机说"想你了bb",好蠢啊. 但随着年龄的增长,我对网恋有了更

变量命名大部分都是 fuck,shit ,这程序员老哥是被命名逼疯,还是戾气太重?

最近一个工作4年的老同事离职了,领导让我接手维护他的功能并把代码交给我. 我拿到代码一看,变量命名大部分都是 fuck,shit 之类的粗话,甚至 for 循环用于 break 的 label 也命名为 FUCK_FOREACH,JUnit 测试导出的文件也带有 Fuck 字样,而且通篇没有注释,应该就剩数据库的表命名没带粗话了... 我这里没有 code review,貌似领导也不知道,不知道那个老同事经历了什么,我的天!!! 你们会在代码里带粗话吗? 「 被命名逼疯的节奏 」 说真的,看到这

Git学习笔记(二)

本次学习的是 版本回退 基本命令: 查看提交历史      git log 版本回退            git reset 查看每一次的命令 git reflog 具体步骤: 添加一句话到readme.txt中,并提交到Git库中. . readme.txt在Git中目前有三个版本: 按提交时间先后顺序排列如下: 第一个:wrote a readme.txt 第二个:add distrubuted 第三个:add difficulties 如果版本过多的话,根本记不住,只能查看使用命令git

git(学习之三)基本操作

Git学习笔记 ##################################################### qq:1218761836 qq群:150181442 E-mail:[email protected] ##################################################### 目录 Git. 2 1.1 初次运行前的配置... 2 1.2 创建版本库... 3 0.3 git提交文件... 4 1.4 检查当前文件状态... 4 1.5

【版本控制】git学习笔记(一)

1. 集中式vs分布式 --Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆. 集中式版本控制系统最大的毛病就是必须联网才能工作,如

Git 学习(七)标签管理

Git 学习(七)标签管理 发布版本时,通常会先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.取出某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照. Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支雷同,但分支可以移动,标签不可):创建和删除标签都是瞬间完成的. 本文具体说明 Git 中是如何创建标签及操作标签的. 创建标签 Git 标签的命令很简单,首先简单浏览下方的 Git 命令: git tag        

Git 学习总结(一)

前言:之前偶然的机会学习了廖老师关于Git学习的一个网站,讲解的很好很详细,通俗易懂,学习之余决定将廖老师帖子的精髓作一个总结(相当于是笔记啦~~),也方便日后查询巩固,希望大家共勉!查看廖老师详细原帖! 1.安装Git 这里,我只介绍一下在Linux系统下Git的安装,如果需要了解Unix.Mac和Windows几大系统下Git的安装方法,可以自行百度,或者参考本帖开头给出的廖老师的Git学习网站进行查询. (1)通过git命令查看系统是否安装Git,如出现以下情况: $ git The pr

git 学习小记之图形化界面客户端

习惯了 Windows 的用户,一直不喜欢用类似命令行的东西来操作,当然我也不是不喜欢,只是操作太慢了.也许 Linux 大神在命令行的帮助下,办事效率翻倍,那也是非常常见的事情..当然我不是大神,所以还是得选择一个合适的工具才行. 其实相信大家也是一样,简单学习之后,直接就上工具了..我找到一篇不错的文章<Git图形化界面客户端大汇总>里面介绍了 11 款 git 工具,而且有截图和简单描述,貌似作者按喜好排序的. 我下载了前三个测试了下.TortoiseGit 差不多直接上手,因为我用的

成不了AI高手?因为你根本不懂数据!听听这位老教授多年心血练就的最实用统计学

成不了AI高手?因为你根本不懂数据!听听这位老教授多年心血练就的最实用统计学 2017-08-20 大数据文摘 著名统计学家.中国人民大学统计学院教授吴喜之教授 授权转载自AI科技大本营 ID:rgznai100 采访 | 胡永波,鸽子 导读 机器学习是一门在统计学和计算机科学交叉点上茁壮成长起来的学科.关于数据的学问,全在统计学里. 在经典统计学中,对于数据性质的研究.误差的分析.数据质量的判断.数据模型的建立,有着非常丰富的思想.理论和经验成果.对于机器学习来说,统计学既是理论基础,又是思想