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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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相对
View Code

    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
View Code

    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
View Code

 

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

 

以上是关于git超速掌握之一(基本使用)的主要内容,如果未能解决你的问题,请参考以下文章

git使用

markdown 一堆Git的基本片段

每个程序员必学的10个Git命令

使用 Git 来管理 Xcode 中的代码片段

一文掌握git使用

一文掌握git使用