1、下载:

https://gitforwindows.org/

2、安装:https://blog.csdn.net/chengyuqiang/article/details/54178683

3.安装完成之后在开始菜单找到Git Bash点击弹出命令行窗口

4、登录用户名和邮箱

1 git config -global user.name "Your userName"
2 git config -global user.email "xxx@163.com"

5、创建版本库

  1.进入到计算机某个磁盘并创建文件夹存放git项目仓库(如myRepository) 

1 $ cd D:\MyInstall\Github:
2 $ mkdir myRepository
3 $ cd myRepository
4 $ git init
Initialized empty Git repository in D:\MyInstall\Github\myRepository\.git

6、git命令

(1)git add <file>,注意,可反复多次使用,添加多个文件。
(2)git commit -m "注释",完成提交。
(3)git reset --hard commit_id 回退版本。
(4)git reset HEAD -- file:清空add命令向暂存区提交的关于file文件的修改(Ustage)
(5)git log可以查看提交历史,以便确定要回退到哪个版本。
(6)git reflog查看命令历史,以便确定要回到未来的哪个版本。
(7)git checkout -- file: 可以让没有add和commit的文件回到修改前状态。
(8)rm file:删除文件,但是不提交修改,可以通过git checkout -- file恢复。
(9)git rm file:删除文件,无法通过git checkout -- file恢复,必须通过git reset HEAD -- file才有用。
(10)ssh-keygen -t rsa -C "youremail@example.com" :在windows下(电脑桌面即可) 打开git bash here 使用命令 $ ssh-keygen -t rsa -C "youremail@example.com"
  创建创建SSH Key
(11)git remote add origin git@github.com:username/Mytest.git :和GitHub上的远程仓库关联,username是GitHub的用户名,Mytest.git是在GitHub上新建的远程仓库。
  添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

  在关联远程库后使用 git add file 和git commit -m "注释"后就可以执行步骤(12)了。

参考:https://www.cnblogs.com/onephp/p/6116716.html

(12)git push -u origin master 我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

测试时一直push失败,

  结果报错如下:
error: failed to push some refs to 'git@github.com:username/Mytest.git '
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
  后发现,是由于两者不同步(新建远程仓库的时候创建了README.md,而本地没有),因此需要先pull,进行合并然后在进行push,
  因此先使用
git pull --rebase origin master
  将远程文件同步下来。
  然后再执行推送就OK了
git push -u origin master

(13)git clone git@github.com:username/jeecms.git 克隆GitHub上的远程库

(14)  查看分支:git branch ,当前分支会有一个*

  创建分支:git branch <name>
  切换分支:git checkout <name>
  创建+切换分支:git checkout -b <name>
  合并某分支到当前分支:git merge <name>
  删除分支:git branch -d <name>,如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
  git log --graph:命令可以看到分支合并图。

  $ git merge --no-ff -m "merge with no-ff" dev:合并dev分支,请注意--no-ff参数,表示禁用Fast forward,--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来                     曾经做过合并,而fast forward合并就看不出来曾经做过合并

(15)修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

(16)git 多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

(17)

    git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    git tag -a <tagname> -m "blablabla..."可以指定标签信息;
    git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

    命令git tag可以查看所有标签。

    命令git push origin <tagname>可以推送一个本地标签;

    命令git push origin --tags可以推送全部未推送过的本地标签;

    命令git tag -d <tagname>可以删除一个本地标签;

    命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

(18)

    忽略某些文件时,需要编写.gitignore;

    .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

Git安装学习记录的更多相关文章

  1. Git原理学习记录

    Git原理学习记录 1.git init git-test ​ git init 实际上就是在特定的目录下创建对应的目录和文件 2.object $ echo "V1" > ...

  2. GIT初始学习记录

    目录 GIT学习记录 配置github与gitlib两个账号 基本操作 git init:初始化仓库 git status:查看仓库状态 git add :向缓存区中添加文件 git commit 保 ...

  3. git原理学习记录:从基本指令到背后原理,实现一个简单的git

    一开始我还担心 git 的原理会不会很难懂,但在阅读了官方文档后我发现其实并不难懂,似乎可以动手实现一个简单的 git,于是就有了下面这篇学习记录. 本文的叙述思路参照了官方文档Book的原理介绍部分 ...

  4. myeclipse8.6 git 安装学习

    只有公司有svn,回到宿舍无法访问,因此没法做迭代开发,因此最近学习了git,这样在公司了提交的代码,回到宿舍也可以继续开发,用了一天的时间才弄明白git的原理,智商有问题啊,下面说下具体步骤,个人已 ...

  5. [git]git版本管理学习记录

    今天看到别人用这玩意记录自己的进度, 我也学习了一下. 1,适当的工具会提升效率 2,关注点还是得放在代码本身上. github/gitignore github提供了各种gitignore文件 有p ...

  6. 【Git】学习记录

    配置git git config --global user.name "用户名或者用户ID" git config --global user.email "邮箱&qu ...

  7. Git学习记录--git仓库

    Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...

  8. Git学习记录 力做全网最强入门教程

    目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...

  9. git学习1:git安装和配置

    Git是什么?世界上最先进的分布式版本控制系统,记录了一个文本文件的每次一修改信息,比如,一篇散文,从草稿到最终出版,经历过无数次修改,修改了标点符号形成一个版本,老师帮助修改形成一个版本,同学帮忙修 ...

随机推荐

  1. Go环境下,编译运行etcd与goreman集群管理(1)

    Go环境下编译运行etcd与goreman管理 近几年了Go在比特币.区块链.云服务等相关重要领域贡献突出,作为IT行业的传承“活到老.学到光头”,保持学习心态. 周末放假,补充一二 主题:在Go环境 ...

  2. PHP 写文件的例子

    $contents = "All the content"; $dir = 'c:'; $file_path = $dir . "\\content.txt"; ...

  3. Java的GUI如何能够切换界面

    在设计GUI的时候,会遇到类似于菜单栏的切换,如何做到界面切换 使用一个JTabbedPane组件,就可以实现界面的切换问题. 在使用的时候可以将里面要使用的组件进行一个封装,封装成一个Panel.再 ...

  4. timerfd与eventfd

    1.timerfd timerfd是定时器描述符,通过timerfd_create()来创建它,timerfd_settime()来设置定时器时间,当时间到期定时器文件描述符就可读,所以能够在sele ...

  5. php7注意事项

    1. 不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 ...

  6. Docker Compose部署lnmp

    参考:https://github.com/micooz/docker-lnmp 一.简介 使用Dcoekr镜像部署lnmp(Linux.Nginx.MySQL.PHP7). 1.1 结构 app └ ...

  7. stm32常识

    cmsis全称Cortex Microcontroller Software Interface Standard,就是Cortex微处理器软件接口标准 stm32每组gpio有7组端口,分别是2个3 ...

  8. How to fix "FAILURE DURING CONVERSION TO COFF: FILE INVALID OR CORRUPT"

    Error LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt appear ...

  9. [Selenium With C#基础教程] Lesson-01环境搭建

    作者:Surpassme 来源:http://www.jianshu.com/p/33b87bc00233 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 最近开始复习Sele ...

  10. java重定向与请求转发的区别

    最近工作不算太忙,今天在这里对java中的重定向和请求转发稍作总结,希望能帮助到大家. 请求转发: request.getRequestDispatcher().forward(); 重定向: res ...