Git实际开发操作(简化)

Git 一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
官网下载地址https://git-scm.com/downloads/
Git是用于Linux内核开发的版本控制工具。采用分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。速度快,最为出色的是它的合并追踪(merge tracing)能力。

    工作实际开发操作步骤(简化):
    一、如何从GitLab上clone项目:
    Android Studio工具VCS-->Checkout from Version Control-->Git  Git Repository URL:填写刚刚复制的项目地址 Parent Directory:项目路径  Directory Name:项目文件夹名称
    二、如何创建上传至GitLab:
    1.输入用户名与邮箱,--global 参数表示你这台机器上所有的Git仓库都会使用这个配置。
    git config -- global user.name "Your Name"
    git config -- global user.email "email@example.com"
    2.检查电脑是否已经有 SSH Keys
    cd~/.ssh
    ls
    3.创建一个 SSH Keys  第一个Enter表示Keys存储的位置,默认按回车键即可。第二个和第三个Enter表示Push文件的时候要输入的密码,不需要密码就默认按回车键即可

$ ssh-keygen -t rsa -C "your_email"
4.开发工具中修改项目外部.gitignore
*.iml
.gradle
/local.properties
.idea
.DS_Store
/build
/captures
.externalNativeBuild
5.创建本地Git仓库 Android Studio顶部菜单栏上的VCS-->Import into Version Control-->Create Git Repository
6.关联远程仓库 git remote add origin git@gitlab.com:wildma/WildmaGit.git 项目的远程地址
7.添加文件 VCS-->Git-->Add...
8.提交文件 每次提交前需要先更新项目VCS-->Update Project 选中Merge,点击OK 然后提交文件VCS-->Git-->Commit Directory...
9.将提交的文件推送到远程仓库 VCS-->Git-->Push...

   Git基本常用命令:

mkdir: XX (创建一个空目录 XX指目录名)
  pwd: 显示当前目录的路径。
  git init 创建新的 git 仓库(把当前的目录变成可以管理的git仓库,生成隐藏.git文件)
  git add XX 把xx文件添加到暂存区去。(git add -A .来一次添加所有改变的文件 git add -A表示添加所有内容 git add . 表示添加新文件和编辑过的文件不包括删除的文件 git add -u 表示添加编辑或者删除的文件,不包括新添加的文件)
  git commit –m “XX” 提交文件 –m 后面的是注释。
  git push origin master Git会把master分支推送到远程库对应的远程分支上(可以把 master 换成你想要推送的任何分支)
  git status 查看仓库状态
git log 查看历史记录
  git diff XX 查看XX文件修改了那些内容
  git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
  (如果想回退到100个版本,使用git reset –hard HEAD~100 )
  cat XX 查看XX文件内容
  git reflog 查看历史记录的版本号id
  git checkout -- XX 把XX文件在工作区的修改全部撤销。
  git rm XX 删除XX文件
  git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
  git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
  git clone /path/to/repository创建一个本地仓库的克隆版本
git clone username@host:/path/to/repository远端服务器上的仓库
  git checkout –b dev 创建dev分支 并切换到dev分支上
  git branch 查看当前所有的分支
  git checkout master 切换回master分支
  git merge dev 在当前的分支上合并dev分支
  git branch –d dev 删除dev分支
  git branch name 创建分支
  git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
  git stash list 查看所有被隐藏的文件列表
  git stash apply 恢复被隐藏的文件,但是内容不删除
  git stash drop 删除文件
  git stash pop 恢复文件的同时 也删除文件
  git remote 查看远程库的信息
  git remote –v 查看远程库的详细信息
git remote add origin <server>如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器

Git特点:
1.分布式:Git系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。
2.保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。
3.Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git所有的操作不需要在线进行;这意味着Git的速度要比SVN等工具快得多,因为SVN等工具需要在线时才能操作,如果网络环境不好, 提交代码会变得非常缓慢。
4.Git基于快照:SVN等老式版本控制工具是将提交点保存成补丁文件,Git提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据(作者,日期,GPG等)。
5.Git的分支和合并:分支模型是Git最显著的特点,因为这改变了开发者的开发模式,SVN等版本控制工具将每个分支都要放在不同的目录中,Git可以在同一个目录中切换不同的分支。
6.分支即时性:创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub中去。
7.分支灵活性:用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。
工作流
你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。


image.png

SVN与Git的主要区别:
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
  Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

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