使用git与github/码云管理代码

前置知识:
Github : Git项目托管网站, 部分情景拥有免费私仓。
码云 : Git/SVN项目托管网站, 拥有免费私仓。
Git : 分布式版本版本控制工具。
GitLab : 开源免费可自行搭建的代码托管平台。

图片.png


创建仓库并与远程仓库绑定, 取消绑定

注意:

  • 创建生成.git文件,该目录下为工作区, 工作区自动检测除.gitignore中标注外的文件的改动。
  • git只识别目录符:/
$ git init  创建成功并生成.git文件

//如果你是第一次提交项目到一个新的仓库,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。
//建立远程仓库连接1
$ git remote add origin git@+ 项目ssh连接

//建立远程仓库连接2
//github  
$ git remote add origin git@github.com:用户名/远程仓库名(url).git
//码云
$ git remote add origin git@gitee.com:用户名/远程仓库名(url).git

//取消本地目录下关联的远程库:
$ git remote rm origin

//查看你当前项目远程连接的是哪个仓库地址。
$ git remote -v  

进行仓库版本提交

注意:

  • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令(去掉u)。
//查看当前项目下所有文的状态,如果第一次,你会发现都红颜色的,因为它还没有交给git
$ git status  

 //(.)点表示当前目录下的所有内容,交给git管理(添加到暂存区),也就是提交到了git的本地仓库,在add
$ git add   .  后加文件名也可只添加一个文件(加入暂存区)。

//add后可以回退文件,将文件从暂存区回退到工作区 
$ git reset HEAD filename :

//使用(.)点提交后, 多人合作时记得删除个人的屏蔽文件
$ git rm .gitignore

//对你更新或修改了哪些内容做一个描述,提交到版本。
$ git commit –m ”new matter ”  

//推送:
//第一次推送远程仓库 加 -u
//-u表示当前分支推送信息初始化, 第二次开始你就可以用git push推送到对应分支了
$ git push -u origin master 
$ git push  

//如果推送由于版本错误一直失败 加-f , 强行让本地分支覆盖远程分支
//使用于不同.git对差异过大的文件不兼容
git push origin master -f

管理代码版本

那么在平日的使用中怎么进行代码管理呢:
版本信息查看:
//命令可以让我们时刻掌握仓库当前的状态,告诉我们,哪些被修改过了,但还没有提交,甚至可以查看哪些合并冲突了。
$ git status 

//顾名思义就是查看difference,可以从上面的命令输出看到,我们上次具体做了什么修改
$ git diff <file>

//命令显示从最近到最远的提交日志(版本号也会显示出来),如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数.
$ git log  
进行版本回退:
//查看当前文件状态确认版本号
$ git log  

//彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
 HEAD    回退到最近一个版本
 HEAD^ 代表当前版本上一个的版本号
$ git reset --hard  HEAD 

//回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
 $git reset --soft:
进行版本恢复:
//查看当前工作区的所有历史版本提交信息及版本号
$ git reflog 

//版本号没必要写全,前几位就可以了,Git会自动去找。
$ git reset --hard  【版本号】 

//查看当前文件状态确认版本
$ git log  

分支合并管理

分支合并: 例如, 将本地开发分支dev合并 到master,并同步更新远程:
//在 主分支下合并
$git branch  查看分支
$git merge dev   把dev的最新更改合并到当前分支下
$git checkout master
$git pull origin master  //拉取并更新
$ git push
分支创建:
//引入github已有分支
$ git pull origin 远程分支名

//切换
git checkout 分支名


//创建新分支并切换到新分支下
$ git checkout -b 分支名

注意:
缓存区有未提交更改, 不能切换分支


从远程库拉取代码

注意:
拉取代码时,请先commit自己有用的更改, 先 commit 再 pull,如果不想更新时有2个版本信息,也可以git stash先创建镜像(不用commit)

拉取准备:git stash使用场景

git stash 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。

比如下面的中间状态,通过git stash命令推送一个新的储藏,当前的工作目录就干净了。

$ git stash list                 可以看到保存的信息:

$ git stash pop stash@{id} 还原某个id的镜像并合并刚刚pull的部分,并移除原先stash

$git stash drop <stash@{id}>删除

"pull"命令把"origin"分支上的修改拉下来并且和你的修改合并; 结果看起来就像一个新的"合并的提交"

$ git clone git@+项目ssh链接
fetch 以及pull

假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?

$ git fetch origin    //取得远程更新,这里可以看做是准备要取了

$ git merge origin/master  //把更新的内容合并到本地分支/master

多人合作加入时,由于本地版本没有版本信息, 并且不一定一致,如何更新至于远程同一状态, 使用忽视历史版本信息的拉取命令:

$ git pull origin master --allow-unrelated-histories
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,396评论 0 7
  • 这篇博文是自己在学习git过程中的思考总结。本文仅仅代表个人的看法,如有不妥地方还请本文文末留言。 😊 原文链接g...
    Ming_Hu阅读 1,048评论 4 18
  • 远程仓库 到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题...
    归云丶阅读 1,956评论 0 5
  • 如何关联远程库? 1.新建本地库 2.通过git官网新建远程库 3.输入指令: git remote add or...
    诸子大人阅读 16,409评论 1 9
  • 转载自:http://www.open-open.com/lib/view/open1414396787325.h...
    Bbooo阅读 407评论 0 3