Git使用过程
Git-------目前世界上最先进的分布式版本控制系统(没有之一)
什么是版本控制系统?
说简单点,就是一个文件,对其增加、删除、修改都可以被记录下来,不仅自己可以修改,其他人也可以进行修改
每次对文件的改动后,包含的记录项类似:
版本--也就是文件改动的次数 改动的文件依然存在 ,类似文件的副本
用户--改动文件的人
说明---文件被改动的位置
时间---文件被修改的时间
安装Git
Windows系统 git链接:https://git-for-windows.github.io/
安装很简单,直接下一步------下一步即可完成安装
安装完成后,在开始菜单-->Git-->git bash打开命令行工具 ,弹出这样的窗口,太棒了,完成安装操作
完成安装后,需要在本地生成ssh信息(由于git仓库和github仓库之间的数据传输需要SSH加密):
进入 git bash:
1. 输入 ssh-keygen -t rsa -C "邮箱地址"
2.进入C:\Users\Administrator\.ssh 目录 打开id_rsa.pub 拷贝其中内容
3.进入github后台,SSH and GPG keys-->New SSH key
-->title任意-->content:输入拷贝的内容
4.进入git bash中输入一下2句话 $ ssh -T git@github.com(输入) The authenticity of host 'github.com (192.30.253.113)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw*. Are you sure you want to continue connecting (yes/no)? yes(输入)(注意:一定要是输入,不能回车) Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts. Hi arilpan! You've successfully authenticated, but GitHub does not provide shell access -------表示已经成功连接上github
5. 配置全局 用户名:$ git config --global user.name ' your name'
邮箱:$ git config --global user.email 'email'
查看:$ git config --get user.name
$ git config --get user.email
创建版本库(repository)
mkdir leargit ----创建一个版本库,也就是一个目录,在这个目录下存放所有的文件,对所有文件的操作都会被git记录下来
cd leargit ----去往leargit这个目录下
pwd-----查看当前所在目录
初始化git仓库
$ git init ----初始化新创建的目录,变成git可以管理的仓库 ,这样git仓库就创建好了
查看当前目录,会发现leargit目录下,会存在一个.git目录,这个目录是用来管理跟踪版本库的
添加文件到git仓库
不要使用windowns自带的记事本编辑你的文件,建议使用Notepad++http://notepad-plus-plus.org/,功能强大
1)添加文件到暂存区--库(注意:这个文件是你已经在工作区中写好的文件,也就是在电脑中,leargit目录下存在的文件)
首先回到learngit目录下 cd learngit
添加文件 $ git add readme.txt (可反复使用)
2)接着,用git commit命令告诉git,提交文件到库
$ git commit -m "write a readme.txt"
-m:后面的文字是本次提交文件的说明,可以输入任意内容,但最好是有意义的
注意:commit可以一次提交多个文件,所以add一次可以添加多个文件 eg:$ git add 1.txt 2.txt...$ git commit -m "add two files"
工作区和暂存区的理解:
1.工作区:电脑中看到的目录,比如leargit下的文件(除开.git目录),或者以后将要创建的文件;
2.暂存区: leargit目录下有一个隐藏目录.git,他不属于工作区,而是一个版本库,其存储了很多东西,其中最重要的就是stage--暂存区,
它还为我们创建了一个master分支,以及执行master的指针HEAD
之前所说的提交文件到版本库实际上是这两个步骤:
1.git add :将工作区的文件添加到暂存区中
2.git commit :将暂存区的所有内容提交给当前分支下
修改文件
修改文件完后需要进行和提交文件一样的步骤 (1.添加文件 git add 2.提交文件 git commit -m )
常用的命令
git status----查看仓库当前的状态(文件是否被修改和提交)
git diff------查看文件中被修改的位置,以及位置上对应的内容
git log-----查看文件提交的历史记录(从最近到最远的显示日志信息),确定要回到哪一个版本,
也可以使用 git log --pretty-oneline将信息显示在一行
版本回退 ---版本回退,不需要再次进行文件的添加和提交
git reset --hard HEAD --回到上面的版本
head---表示当前版本 也就是最新的提交(必须知道才能进行返回) head^--表示上一个版本
head^^----表示上上一个版本 head~n-----返回上n个版本
cat readme.txt --------查看文件的内容
版本会退后的前进
git reset --hard 版本号(用git reflog命令能够查到) -----方便回到未来的某个版本
git reflog---记录每一次的命令,方便用于当你回到某个版本后,再想恢复到现在的版本,就必须找到现在版本的id 即回到未来的某个版本
管理修改
如果每次修改完成后,不使用add 命令添加到暂存区,就不会被commit提交到git仓库
撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout - - filename
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,
分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
删除文件
$ git rm 1.txt
一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
$ git checkout -- file
git checkout ---实际就是用版本库里的版本替换工作区的版本,无论工作区是删除的还是修改的,都可以‘一键还原’
远程仓库 ----操作如上 可以实现远程库
GitHub允许你添加多个SSH Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,
添加远程库
要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
如何创建一个远程仓库让本地git仓库与github仓库数据同步?
1.登陆github 完成如图三部操作
2.创建完成后,需要在本地git仓库完成两步操作才能将git仓库中的分支上的所有内容同步到github仓库中
3.完成分支的推送,就可以看见远程库的内容和git仓库的内容完全一致了
往后,只要对本地仓库的内容进行了修改都可以使用 git push origin master 命令,将最新的内容更新到远程库中
克隆远程库
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone 远程库的地址
命令完成克隆。
创建和合并分支
也可以直接输入 git checkout -b dev ----创建并切换分支
在dev分支上进行文件readme内容的修改,然后进行提交,再切换到master分支,发现两个分支上的内容不一致
如何合并分支?
合并完成后,就可以删除dev分支了 使用命令 :git branch -d dev
Git基本常用命令如下:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
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 https://github.com/tugenhua0707/testgit 从远程库中克隆
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 push origin master Git会把master分支推送到远程库对应的远程分支上
可供参考的链接:http://blog.jobbole.com/78960/
Git使用过程的更多相关文章
- SVN迁移到Git的过程(+ 一些技巧)
SVN迁移到Git的过程(+ 一些技巧) 李顺利 Key Words SVN,Git,Clone,Conversion,Tips,VCS,Pro Git 关于在VCS中SVN和Git之间的迁移(Clo ...
- git 使用过程(一、准备工作)
没有多余的废话,只是纯粹的捞干的记录下一自己使用Git的过程.(正在学习中,也是刚接触,记录过程可能有点乱.等熟悉之后在重新整理一下) 一.先下载git客户端 网址:http://msysgit.gi ...
- git rebase 过程中遇到冲突该怎么解决?
在执行git rebase 过程中经常遇到问题,此时有点慌,一般如何解决呢? 1.先将本地的冲突手动解决 2.执行下面命令 git add . git rebase --contine //继续re ...
- Windows系统Git安装教程(详解Git安装过程)
Windows系统Git安装教程(详解Git安装过程) 今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序 到Git官网下载,网站地址: ...
- 从0到1,本地到远程git程序过程
从0到1,本地到远程git程序过程 切记一定要在需要提交代码的文件夹下git init,既是你使用了什么 tortoisegit什么工具,或者你在idea环境下已经add了,但是仍然需要你在当前文件夹 ...
- Git使用过程中出现项目文件无法签入Source Control的情况
在VS中使用Git进行项目source control的过程中,有些文件不在source control之下,右键点击时,也找不到Undo, Commit命令 无法把他们签入进Source Contr ...
- my project 中git使用过程(基本操作流程)
1.g it clone git@name:server/BM/APPS.git 则BM_APPS.git项目被下载到当前目录下了,这时git@name:server/BM/APPS.git就是自己 ...
- Git使用过程中的问题
Q-1:怎么切换到远程的分支 本地已经有一个代码库了(是从github上clone的),但是现在远程库中一个新的branch,怎么拉取远程分支,并在本地创建该分支(内容一样).how to do? # ...
- git提交过程中遇到的 index.lock 问题导致无法提交的解决方法
在提交代码的过程中,可能会遇到下面的问题: fatal: Unable to create 'C:/programLists/zzw-q1/.git/index.lock': File exists. ...
- SVN迁移到Git的过程(+ 一些技巧
关于在VCS中SVN和Git之间的迁移(Clone)这个部分网上已经有大批的文章介绍,而且都非常不错,能够满足我们的常见的需求,这里介绍的是我自己整理的一些技巧和使用中出现的一些问题和疑问.阅读本篇文 ...
随机推荐
- 线程:CyclicBarrier同步工具类
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点.比如公司组织活动出去玩,需要在公司门口一起搭车去.每个人从家里出发去公司门口,到达的时间肯定先后不一样,所以公司的车要一直等待,等所有人 ...
- PHP学习笔记三十五【Try】
<?php function AddUser($name) { if($name=="张三") { echo "add success"; return ...
- (原)vs2013编译boost1.60库
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5394236.html 参考网址: http://www.cnblogs.com/chuncn/arch ...
- Ecstore中的微信支付怎么样配置
要在Ecstore中开启微信支付,需要先在后台/应用中心中安装“移动商城”和“微信商城管理”这两个App移动商城App是ecstore的手机wap版,可在手机浏览器中实现商城的B2c购物功能.“微信商 ...
- 关于tuple的只读特性
a = (1,3,[5,4,1]) a[2][1] = 2 print(a) 结果是:(1,3,[5,2,1]) 可以看到,在这里tuple的内容被修改了. 原因就是tuple的“只读”属性是指tup ...
- bochs 2.6安装和使用
1.安装 Ubuntu 10.04下编译安装Bochs 2.6及问题解决 安装 https://chaoyang.blog.ustc.edu.cn/index.php/archives/124 安装具 ...
- javacc
http://www.cnblogs.com/Gavin_Liu/archive/2009/03/07/1405029.html https://javacc.java.net/ http://www ...
- BZOJ 3529 数表(莫比乌斯反演)
http://www.lydsy.com/JudgeOnline/problem.php?id=3529 思路:令F(i)为i的约数和, 1<=x<=n,1<=y<=m G(i ...
- C# Nullable可空类型
一个Nullable类型就是基本类型加上一个"是否为null指示器"的合成类型.对于一个类型,如果既可以给他分配一个值,也可以给它分配null引用,我们就说这个类型是可空的. 可空 ...
- 数据库下载word预览功能的研究
本文参考了这里的一些方法http://tobetobe.blog.51cto.com/1392243/354420 一直想通过缓存来实现,奈何技术不够,走了曲线救国的思路,先下载,然后预览,删除下载文 ...