Git版本控制工具

1.安装git
  下载安装git

  从[https://git-for-windows.github.io](https://git-for-windows.github.io/)
  下载(网速慢的同学请移步[国内镜像]
  (https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)),
  然后按默认选项安装即可

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后一步设置,在命令行输入:
(配置电子邮件和用户名,git需要知道你是谁)

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

在本地创建版本库
特别提示:window版本的项目目录一定要包含父目录,否则会很容易出现这样那样的错误(亲测!!!各位小伙伴注意)

首先,选择一个合适的地方,创建一个空目录;
其次,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

(如果没出现这个文件说明电脑隐藏了不可见文件夹或文件在控制面板礼文件夹选项里勾选这个选项就出现了)

3.创建一个文件
例如: index.txt
  内容随便写,如  hello

接下来用命令git add告诉Git,把文件添加到仓库:
(特别提示,txt文件最好不要用文本编辑器更改,很容易出现问题)

$ git add index.txt

然后用命令git commit告诉Git,把文件提交到仓库

$ git commit -m "添加了一个文本文件"
4.远程仓库

1.首先登录你的githup

2.右上角点击+号,创建一个新的仓库(new repository),填写上仓库的名字和基本描述,确定,一个远程仓库就创建好了,是不是很简单

3.接下来创建SSH Key

  $ ssh-keygen -t rsa -C "youremail@example.com"

youremail@example.com是你自己的邮件地址,记得一定要更改
执行完成之后会在c盘的/用户/本机用户名/.ssh 文件夹内生成三个文件
里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

4.登陆GitHub,点击右上角的头像,打开“settings”,然后,点“[SSH and GPG keys]”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点击add ssh key添加完成

5.关联远成仓库
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的仓库下运行命令:

$ git remote add origin git@github.com:jsformat/virus.git

请千万注意,把上面的jsformat替换成你自己的GitHub账户名,否则,你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

6.现在就可以通过以下命令把本地库的所有内容推送到远程库上:

$ git push -u origin master

执行完成之后查看你的远成仓库是不是文件被推送上来了。。
(正常的操作现在一个文件已经被推送上来)

另外当提交的远成仓库出现 的一些问题

[git push origin master 报错的解决方法]

1 错误提示如下:
 2 [root@linux1 php]# git push -u origin master
 3 To git@github.com:kangvcar/Results-Systems--PHP.git
 4  ! [rejected]        master -> master (fetch first)
 5 error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git'
 6 hint: Updates were rejected because the remote contains work that you do
 7 hint: not have locally. This is usually caused by another repository pushing
 8 hint: to the same ref. You may want to first merge the remote changes (e.g.,
 9 hint: 'git pull') before pushing again.
10 hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因:

GitHub远程仓库中的README.md文件不在本地仓库中。

解决方案:

我们只需加上 --rebase 参数然后再重新 push 一次即可

$ git pull --rebase origin master
$ git push -u origin master
对于拉取远成仓库文件到本地
    git clone https://github.com/jsformat/virus.git
     //https://github.com/jsformat/virus.git 这个地址是你远程仓库地址
删除本地文件然后同步到远程仓库
  git rm a.txt  //删除本地的a.txt

然后提交本次修改

git commit "删除a.txt文件"

最后将文件同远成仓库更新

  git push
对于版本回退

首先,Git必须知道当前版本是哪个版本,

在Git中,用HEAD表示当前版本

上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

我们要把当前版本回退到上一个版本就可以使用git reset命令

  git reset --hard HEAD^
  //或者
   git reset --hard 上一个版本号

回退过之后如果想在回来,
如果当前的命令行窗口并没有关闭,你可以找到ID号并且执行:

  git reset --hard 上一个版本号的ID

如果窗口已经关闭了,git提供了一个命令

git reflog //用来记录你的每一次命令,可以找到对应的ID号

git分支操作

git 创建分支, 切换分支, 合并分支, 删除分支及提交[commit提交到本地仓库push名利提交到远程服务器], 检出[pull], 冲突修改, 本地仓库同步远程服务器[pul和push命令l]操作

开发中常用操作

删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失]

查看状态:git status

添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上]

添加描述:git commit -m "描述或备注类似svn提交时的注释"

同步数据:git pull  [获取git远程服务器上的数据也可以具体到某一分支如: git pull origin 分支名]

提交数据:git push origin 分支名

分支操作

查看分支:git branch

创建分支:git branch 分支名

切换分支:git checkout 分支名

创建+切换分支:git checkout -b 分支名

合并某分支到当前分支:git merge 分支名

  [比如,如果要将开发中的分支(deve),合并到稳定分支(master),
     首先切换的master分支:git checkout master。
     然后执行合并操作:git merge deve。
     如果有冲突,会提示你,调用git status查看冲突文件。
     解决冲突,然后调用git add或git rm将解决后的文件暂存。
     所有冲突解决后,git commit 提交更改。]

注意点:

分支衍合
分支衍合和分支合并的差别在于,分支衍合不会保留合并的日志,不留痕迹,而 分支合并则会保留合并的日志。
要将开发中的分支(dev),衍合到稳定分支(master)。
首先切换的master分支:git checkout master。
然后执行衍和操作:git rebase deve
如果有冲突,会提示你,调用git status查看冲突文件。
解决冲突,然后调用git add或git rm将解决后的文件暂存。
所有冲突解决后,git rebase --continue 提交更改。

删除分支:git branch -d 分支名

删除分支执行git branch -d 分支名
如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D 分支名

删除远程分支:git push origin :name
需要注意的是origin后面有空格

撤销修改:git checkout -- file
对应图片操作

branch.png

对于提交到分支的文件的操作步骤

1.新建本地仓库,并且初始化

  git init

2.添加文件到暂存区

  git add -A //全部文件

3.提交文件

  git commit -m "描述"

4.将远程信息拉取到本地(比如远程分支的信息,这步可以不做)

git fetch

5.查看分支信息(建立在第4步的基础上)

git branch -r  //所有远程分支信息

6.新建本地分支

git branch newBranch  //newBranch 为分支名

7.切换到该分支

git checkout newBranch

8.关联远程仓库

git remote add origin git@github.com:jsformat/virus.git //我的远程仓库

9.提交文件到该分支

git push origin

删除远程分支文件或者文件夹

git rm -r --cached a/2.txt //删除a目录下的2.txt文件   删除a目录git rm -r --cached a

git commit -m "删除a目录下的2.txt文件" 

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

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,656评论 9 163
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,661评论 4 54
  • <FrameLayoutandroid:layout_width="match_parent"android:la...
    自然之秋阅读 243评论 0 0
  • 我今天最开心的事。今天语文老师给我们上课讲了对韵歌,让我想到《笠翁对韵》所以我觉得上课很快乐!因为我全认识这些字。...
    ZZ李梦涵阅读 120评论 1 1
  • 12 构建API 在上一章中,你构建了一个学生注册和课程报名系统。你创建了显示课程内容的视图,并学习了如何使用Dj...
    lakerszhy阅读 2,577评论 0 6