Git入门

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

注:

本例使用的托管平台 码云网址链接
windows 下的管理软件 git

初始化项目

// https://git.oschina.net/huanuo/do.git  创建在码云的项目
$ git clone https://git.oschina.net/huanuo/do.git
Cloning into 'do'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

用户信息配置

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git config --global user.email "argus.deng@nokia.com"

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git config --global user.name  "argus.deng"

查看配置信息

$ git config -l
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.required=true
credential.helper=manager
user.emil=argus.deng@nokia,com
user.name=dengerhuan
user.email=argus.deng@nokia.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://git.oschina.net/huanuo/doweb.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

基本操作

  • git add <文件名> 将工作目录的文件添加到缓存区域。
  • git add * 添加所有文件到staging区域。
  • git commit 打开一个编辑器编辑说明,然后将staging区域的文件提交到仓库中。
  • git commit -m “说明” 将staging区域的文件提交到仓库中,附带简单说明。
  • git commit -a 将工作区域的文件直接提交,跳过stage操作
  • git status 查看当前的文件状态。

举例

// 创建新的文件 newfile.txt 然后查看当前的额文件状态
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
 (use "git add <file>..." to include in what will be committed)

       newfile.txt
$ git add newfile.txt // 将newfile.txt 添加到缓存区域
$ git commit -m "addnewfile"  //  将缓存区域的文件 提交到仓库
[master 1210b9b] addnewfile
1 file changed, 1 insertion(+)
create mode 100644 newfile.txt

这样就完成了一个提交

查看文件的提交历史

git log 查看历史记录
git log -p 显示详细更改信息,
git log --pretty=oneline 显示简略信息
git log --pretty=oneline --graph 显示项目分支合并图。

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git log
commit ba461623c134d4734ec9804896a582fb2a63b9bd
Author: Deng argus <argus.deng@nokia.com>
Date:   Fri Apr 7 17:17:17 2017 +0800

    add new file

commit e55ebbd9d4ea4b88134c66367dd0b52131f9b2d2
Author: 夸夸夸夸 <2492698140@qq.com>
Date:   Fri Apr 7 16:35:12 2017 +0800
// 查看简略信息
$ git log --pretty=oneline
ba461623c134d4734ec9804896a582fb2a63b9bd add new file  //每一条历史记录使用惟一的哈希码标注
e55ebbd9d4ea4b88134c66367dd0b52131f9b2d2 Initial commit

切换历史纪录

git checkout <hash code> 查看历史记录

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do ((ba46162...))
$ git checkout e55e
Previous HEAD position was ba46162... add new file
HEAD is now at e55ebbd... Initial commit

分支管理

git 中的分支就是一个可移动指针,指向了某个历史记录。 默认的分支名是 master 。每次提交后, master 都会指向你刚才的提交记录。
git branch <new branch nama> 创建一个新分支
git checkout -b <new branch name> 创建一个新分支并切换到它

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git branch newbranch

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git checkout newbranch
Switched to branch 'newbranch'


fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (newbranch)
$ git checkout -b anobranch
Switched to a new branch 'anobranch'

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$

在新的分支上添加文件

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ touch hellobranch.txt

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ ls
hellobranch.txt  newfile.txt  README.md

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ vim hellobranch.txt

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ git add hellobranch.txt
warning: LF will be replaced by CRLF in hellobranch.txt.
The file will have its original line endings in your working directory.

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ git commit -m "add hello branch"
[anobranch 14641f3] add hello branch
 1 file changed, 1 insertion(+)
 create mode 100644 hellobranch.txt

合并分支

git merge hotfix

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (anobranch)
$ git checkout master // 切换到主分支
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git merge anobranch // 合并分支
Updating ba46162..14641f3
Fast-forward
 hellobranch.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 hellobranch.txt

删除分支

git branch -d branchname

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git branch -d anobranch
Deleted branch anobranch (was 14641f3).

远程仓库操作

git remote add <shortname> <url> 添加新远程仓库。
git remote show [remote-name] 查看某个远程仓库信息
git remote rename [old-name] [new-name] 重命名远程仓库
git remote rm [remote-name] 删除远程仓库

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote
origin

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote add oam https://git.oschina.net/huanuo/oam.git

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote
oam
origin

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote show oam
* remote oam
  Fetch URL: https://git.oschina.net/huanuo/oam.git
  Push  URL: https://git.oschina.net/huanuo/oam.git
  HEAD branch: master
  Remote branch:
    master new (next fetch will store in remotes/oam)
  Local ref configured for 'git push':
    master pushes to master (local out of date)

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote rename oam oamnewname

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote
oamnewname
origin

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote rm oamnewname

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git remote
origin

向远程仓库推送数据

$ git push origin master

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git push origin master
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 520 bytes | 0 bytes/s, done.
Total 6 (delta 1), reused 0 (delta 0)
To https://git.oschina.net/huanuo/do.git
   e55ebbd..14641f3  master -> master

从远端获取数据

git fetch
git pull

举例

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git pull
Already up-to-date.

fan@DESKTOP-1OGO4V1 MINGW64 ~/Desktop/gti/do (master)
$ git fetch

删除远程分支

git push remotename --delete branchname

举例

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

推荐阅读更多精彩内容

  • 1.git四大域 git四大域:工作目录,暂存区,仓库,远程仓库 git对文件的操作都是在四大域上进行的,文件可以...
    梦魇丶阅读 351评论 0 0
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,449评论 1 26
  • 今日立春,年假也结束了。各行各业今日法定上班日。上班伊始,五行八作,皆希望红红火火,生意兴隆。可是有这么一个行业,...
    岳家屯阅读 132评论 0 0
  • 首论序演化 道然 2016年6月18日 假设用大爆炸理论为前提,那么,宇宙的进化,实质是“序”的发展和进化,而这个...
    道然陈延锋阅读 224评论 0 0