git超速掌握之一(基本使用)

前言:

无论你是运维、开发还是IT爱好者,都会听说github了吧?动不动哪位大神就说在github上有什么什么项目,我的github地址是xxxxx,甚至有自己个github在找新工作时都能给自己加分不少,甚至有人在github写书比如(跟老齐学python),所以github太有用了不得不学啊。。

其实本人15年的时候还在学搭建svn,当时公司也用的是svn,主要是测试发布代码 和自己部门存文档用,当时接触linux不久,现在掌握了git,感觉是从非rmb玩家到rmb玩家般的不同,嗯....开源的力量真是大。

更详细的git教程,推荐阅读 http://www.jianshu.com/p/55496ff224e9

git概述:

git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。 Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。 而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。

git可以自己搭建,也可以用开源项目

git官方地址:https://github.com/

中国开源社区git:https://git.oschina.net/

这里得说下,因为天朝防火墙的原因访问git官网和下载资料都是巨慢,如果你有更好的方式可以直接用官方,没什么特殊需求还是国内的开源社区版吧。

笔者的使用场景是:   如图,win10 macbook linux都是处于不同的地理位置,win10和macbook使用pycharm写python代码,测试成功后推送到linux下的test1-5的虚拟机上,需要有存储代码、发布代码、和临时增加分支项目的功能。

安装:

windows版下载地址:https://git-scm.com/download/win

win需要安装一个bash环境,安装完成打开bash就和linux中的操作很像了,如果你不懂bash和linux命令,请先学习下linux基础.

linux && mac os:yum install git  && brew install git 哈,熟的不能再熟了

使用码云:

1、注册成功后进入自己主页,点击右上角的‘+‘图标选择‘新建项目‘,输入自己的项目名称,概述所使用的开发语言和开源协议

2、主页中就可以看到自己创建的项目了,进到主页选择自己的项目,点击‘克隆下载‘按钮会有ssh和https连接方式选择;

ssh: 通过秘钥验证方式连接主机将主机生成的pub文件内容copy到git中,支持上传下载。

https:通过https协议连接,笔者测试只支持下拉代码 不支持上传。

3、生成key文件

在主机执行ssh-keygen一路回车,cat ~/.ssh/id_rsa.pub 如图

4、码云中右上角点击你的头像,选择‘修改资料‘->选择‘ssh公钥‘,将公钥粘贴到页面,点击确定就加好了

命令行操作:

    1、git原理:

按照上传顺序: git拉取->add(写入本地缓存)->commit(写入本地数据库)->git push(上传到git)

2、基础操作

mkdir test01
#建立测试文件夹
git clone [email protected]:tajzhang/StudyPython02.git
#克隆远端项目
cd StudyPython02
#进入同步好的项目
vim ceshi01.txt
#写入个测试文件
git status
#查看git状态,此命令比较关键,能看到git是否已经commit或add
git add ceshi01.txt
#将文件写入缓存
git commit -m ‘No1‘
#讲文件写入本地数据库,标记为No1
git push
#上传文件,切记是直接上传到云端,本地就不可恢复之前文件了,要小心使用!
git pull
#从云端拉取文件,和push相对

3、进阶命令手册

git config --global user.name "you name"
#设置你的名字 强制性的
git config --global user.email "you email"
#设置你的邮箱
git config --global color.ui auto
#开启命令和输出的颜色
git init [project-name]
#创建一个新的本地仓库
git clone [url]
#下载一个项目的所有的历史版本
git status
#列出所有的正在变更的文件到提交
git diff
#显示文件不同的地方
diff 只在没有add之前生效
git add [file]
#为准备版本编写快照。
git diff --staged
#显示当前版本和最后一个文件版本之间的文件差异
git reset [file]
#结果文件,但保留其内容
git commit -m "asdasdasd"
#在版本历史中永久记录文件快照  提交文件到本地仓库

review history[恢复历史]
git log
#列出所有的历史版本
git log --follow  [file]
#列出一个文件的版本历史,包括重命名
git diff [first-branch]...[second-branch]
#显示两个分支之间的内容差异
git show [commit]
#输出指定提交的内容变更信息

redo commits(重新提交)
git reset [commit]   一般不用
#撤消所有提交后[提交],保持局部变化

git reset --hard [commit]
#将所有历史和更改全部丢弃到指定的提交中
#还原到一个指定的提交中去

git merge [bookmark]/[branch]
#合并本地的分支
git push [alias] [branch]
#提交数据到github
git pull
#下载书签历史并包含更改

vim xxxx
git status
git diff xxxx
git add xxxx
git commmit -m  ‘update xxxx‘
git status
* git回退版本
git reset --hard HEAD^    回到上一个版本
git reset --hard HEAD^^    回到上上一个版本
git reset --hard HEAD^100 回到上100个版本
也可以通过commit id =3331232 这个值来回退版本
git reset --hard 3331232
#时光穿梭

git reflog 查询你做过的命令
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

没有add之前可以使用
git checkout -- [file name]

如果已经add 把文件加入暂存区了怎么办
git reset HEAD [file name]
git checkout -- [file name]

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库

ADD  暂存区
commit 工作区
### 删除文件
rm xxx
git rm xxx
git commit -m ‘remove xxx‘

4、分支:

当你的项目有多个人同时协作,或是项目中途中断去开发其它功能时,可在master项目创建一个master的二次元项目,不会干预到master,文件和master相同,当你完成开发就可以和master项目合并。

相关命令:

git branch
#列出所有的本地分支
git branch [branch-name]
#创建新的分支
git checkout  [branch-name]
#切换分支
git merge [branch]
#合并分支
git branch -d [branch-name]
#删除分支

git branch cehsi
git branch
git checkout ceshi
vim  ffff
git add ffff
git commit -m ‘ceshi‘
git chekcout master
git merge ceshi
git branch -d ceshi
#并行分支
git branch ceshi2
git branch cehsi3
git checkout ceshi2
vim ceshi2
git add ceshi2
git commit -m ‘ceshi2‘
git checkout ceshi3
vim ceshi3
git add ceshi3
git commit -m ‘ceshi3‘
git checkout master
git merge ceshi3

后续会更新pycharm下如何同步git

时间: 2024-10-22 14:54:36

git超速掌握之一(基本使用)的相关文章

Windows Git+TortoiseGit简易使用教程

转载自 http://blog.csdn.net/jarelzhou/article/details/8256139 官方教程:http://tortoisegit.org/docs/tortoisegit/(英文版) 为什么选择Git 效率 很多人有一种习惯吧,什么软件都要最新的,最好的.其实吧,软件就是工具,生产力工具,为的是提高我们的生产力.如果现有的工具已经可以满足生产力要求了,就没有必要换了.生产效率高低应当是选择工具的第一位. 历史 开源世界的版本控制系统,经历了这么几代: 第一代,

git 把本地创建的项目放到github上

很早之前就注册了Github,但对其使用一直懵懵懂懂,很不熟练.直到昨天做完百度前端技术学院的task,想把代码托管到Github上的时候发现自己对于Git的操作是如此之愚钝,所以今天决定把Git好好学习一遍,好让自己以后能更好地使用Github,主要还是通过Git教程 - 廖雪峰的官方网站来学习.简要步骤可以直接看最后的总结. Git的安装就不说了. 第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创

git基本操作

一.分支操作 git init 初始化仓库 git status 查看仓库变化 git add 从工作树提交到暂存区 git commit 从暂存区提交到本地仓库 git commit --amend 修改上条记录的备注 git commit -am 'comment' 提交到暂存区和本地仓库 git diff 工作树和暂存区插播 git diff HEAD 工作树和最本地仓库的差别 git checkout -- filename 撤销工作需修改(修改.删除) git log [filenam

《个人-GIT使用方法》

本文章转载于:http://blog.csdn.net/gemmem/article/details/7290125 1. Git概念 1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制..git目录位于工作目录内. 1) 工作目录:用户本地的目录: 2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域

Windows下使用Git Bash提交代码到GitHub

以前上传代码到Github主要是通过客户端Github Desktop或者网页,换电脑后感觉安装客户端太麻烦,了解命令行的方式就很有必要了. 这里的实验是把一些代码更改提交到Json.git仓库里. "ls" 为Linux命令,用于查看当前目录下的文件及文件夹. "git init" 命令用于对当前目录进行初始化,使当前的project-name目录交由Git进行管理. "git add" 命令可以对指定文件添加跟踪.如果后面跟空格加点号&quo

linux下git常用命令

1 安装: sudo apt-get install git 2 创建一个版本库: 新建一个文件夹,进入这个目录之后 git init 3 创建一个版本: git add 文件名或目录 #表示将当前文件的修改放入缓存区 先不提交 git commit -m '版本名称' #将缓冲区提交建立一个版本 4 查看版本记录 geit log 每条一行查看版本信息 git log --pretty=oneline 按图形方式查看 有合并版本的时候很清晰 git log --pretty=oneline -

Ubuntu Linux下通过代理(proxy)使用git上github.com

github.com,作为程序员的代码仓库,我们经常会用到.但有时候我们不能直接通过网络链接它,只能通过代理. 这里我有一台代理服务器,起初我以为在终端设置了代理环境就行了,其设置为在你的~/.bashrc里增加以下几行: export http_proxy="http://proxy-server:3128/" export https_proxy="http://proxy-server:3128/" export ftp_proxy="http://

git入门(4)团队中git保管代码常用操作

在团队中协作代码时候,一定要熟练使用以下git命令,不至于把代码库弄乱, PS:一定要提交自己代码(git push)时候,先进行更新本地代码库(git pull),不然提交异常 git常用命令 1·.clone相应项目 git clone ... 举个栗子(只是个栗子) git clone https://github.com/saucxs/watermark.git 2.新建分支并且切换到这个分支 git checkout -b 分支名(英文名) git chenckout -b dialy

已经在Git Server服务器上导入了SSH公钥,可用TortoiseGit同步代码时,还是提示输入密码?

GitHub虽好,但毕竟在国内访问不是很稳定,速度也不快,而且推送到上面的源码等资料必须公开,除非你给他交了保护费:所以有条件的话,建议大家搭建自己的Git Server.本地和局域网服务器都好,不信你试试,那速度,怎一个爽字了得! 默认情况下,使用TortoiseGit同步代码,每次都需要输入用户名和密码,但为了方便可以在客户端创建ssh密钥,用于服务器端和客户端的认证(详细过程大家可参考这里),但有时会出现“ 已经在Git Server服务器上导入了SSH公钥,可用TortoiseGit同步