1、任何文件在Git内都只有三种状态:
①已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了;
②已修改(modified):已修改表示修改了某个文件,但还没有提交保存;
③和已暂存(staged):已暂存表示把已修改的文件放在下次提交时要保存的清单中。
由此我们看到Git管理项目时,文件流转的三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。
 
2、先决条件:
1)在GitHub上面注册一个账号并激活
2)安装windows下的git客户端如msysgit
 
*****************************华丽的分割线*****************************
一、使用SSH建立本地Git跟GitHub的连接
SSH是什么,我也不清楚,只知道很多连接相关的都叫SSH比如说XShell连接Linux主机的时候就是SSH,应该是一种连接协议吧,需要找一个谷歌。
 
1、查看本地是否存在SSH:
No such file or directory 说明不存在ssh,则需要去创建一个新的ssh keys,使用命令建立SSH连接(看第3点)。
 
2、运行命令:
$ ssh-keygen -t rsa -C your_email@youremail.com
执行完后在当前登录的用户下建立了文件夹:
 
3、将新生产的SSH密钥导入到Github账户中
其中key是id_rsa.pub里面的文件内容:
 
4、接下来测试一下我们的git跟github是否能连接上
①输入命令:ssh -T git@github.com
②输入yes,提示
③输入之前设置的密码:直接提示连接被关闭
④接着执行上面的命令,再一次输入密码,发现
以上设置为了让我们本地的Git跟Github连接上,接下来在本地配置git以便能够更好的进行签入和签出文件
 
*****************************华丽的分割线*****************************
 
二、配置Git并新建项目
1、使用命令 
git config --global user.name “Your Name”
git config --global user.email “you@example.com
如图:
操作之后windows下当前登陆用户会多一个.gitconfig文件,
文件内的内容为:
 
2、新建一个仓库
 
3、上传文件到GitHub中
 
①在的盘下新建一个目录名为jstest,跟前面建立的仓库名一样
 
②跳转到d:\jstest目录下
或者直接在cmd命令下进行,不过要将git的bin目录添加到环境变量下面
需要将git的bin路径添加到环境变量
 
③新建一个README文件
 
④签入到本地文件库中
first commit 是签入备注
 
整个步骤如下图:
 
官方给出的命令如下:
 
以上就是Git的一个简单使用
 
*****************************华丽的分割线*****************************
 
三、Git不能支持中文的解决方法

1、ls不能显示中文目录
解决办法:在git/etc/git-completion.bash中增加一行:
alias ls='ls --show-control-chars --color=auto'

2、git commit不能提交中文注释
解决办法:修改git/etc/inputrc中对应的行:
set output-meta on
set convert-meta off

3、git log无法显示中文注释
解决办法:在git/etc/profile中增加一行:
export LESSCHARSET=iso8859

来源于网络

*****************************华丽的分割线*****************************

四、Git一些命令详解(不断更新)

1、从GitHub上克隆一个项目
克隆地址在每一个项目的首页都有,有很种形式的方式
 
2、使用git diff查看差异(这个缺点太多了,请直接右键单击项目然后选择Git gui)
 
3、将一个已经存在的项目更新到GitHub上的步骤:
1)切换到工作目录:cd /d d:\github\jstest
1)新建一个文件夹,跟项目名称一模一样例如jstest
2)将项目文件复制到jstest文件夹下
 
4)进入项目根目录夹并初始化git:git init
5)添加所有文件:git add .
6)提交到本地:git commit -m "start project"
7)添加到远程服务器:git remote add origin git@github.com:liujiangbei/pytest.git
8)更新到GitHub上:git push -u origin master
参考文章:
 
4、创建一个仓库
Create a new repository on the command line
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin
git push -u origin master
 
Push an existing repository from the command line
git push -u origin master

 
5、命令条目
1)添加文件:git add file
2)移除文件:git rm file
3)从远程获取最新版本并merge到本地:git pull origin master (当然要进入项目的活动目录里)
4).更新项目(新加了文件):
$cd ~/jstest
$git add .                  //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit              //提交到本地仓库
$git push origin master    //不是新创建的,不用再add 到remote上了
5).更新项目(没新加文件,只有删除或者修改文件):
$cd ~/jstest
$git commit -a          //记录删除或修改了哪些文件
$git push origin master  //提交到github
6).忽略一些文件,比如*.o等:
$cd ~/jstest
$vim .gitignore     //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
7).clone代码到本地:
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin    //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
8).撤销
$git reset
 
*****************************华丽的分割线*****************************
有用的连接:
 
更新自己fork的项目
 
git中pull和fetch的区别
 
*****************************华丽的分割线*****************************
常见错误
1.$ git remote add origin git@github.com:WadeLeng/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:$ git remote rm origin
然后在执行:$ git remote add origin git@github.com:WadeLeng/hello-world.git 就不会报错误了
2. $ git push origin master
错误提示:error:failed to push som refs to
解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
 

附件列表

20130907.Git学习记录的更多相关文章

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

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

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

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

  3. git 学习记录—— git 中的仓库、文件状态、修改和提交操作等

    最近开始学习使用版本控制工具  git .学习方式主要通过阅读 git 网站上的 Pro git 和动手实践,使用的系统为 Ubuntu16.04LTS,以及 Windows 8.1. 本文主要关注 ...

  4. GIT学习记录4(标签管理与自定义git)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  5. GIT学习记录3(分支管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  6. git学习记录2(远程库管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  7. git学习记录1(本地库管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  8. Git学习记录-基本命令篇

    目录 网页在线练习地址 https://learngitbranching.js.org/ 1.git commit Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然 ...

  9. Git学习记录(一)

    本篇文章介绍Git的本地使用 Git是什么? Git是世界上最先进的分布式版本控制系统. 那么什么是版本控制系统? 我们来举个例子,假设我创建了一个项目Project.1,里面写了一个README.t ...

随机推荐

  1. 提高生产力:发送邮件API和Web服务(包含源码)

    在Web开发中,发邮件是一种非常常见的功能或任务. 发送邮件的6种方式 一文提到了6种方法,文章发表后,有网友指出了还有另外一种方法,Ant中也可以发送邮件. 打开Foxmail之类的邮件客户端或者在 ...

  2. java的值传递与引用传递

    一. 经常搞不清楚,当一个对象做为参数传入到方法中时,为啥有时候值能被改变,有时候又不会改变,以下说明原因: 1.当传入的参数,在方法中能被改变的为 引用传递 2.当传入的参数,在方法中没被改变的为 ...

  3. WebService学习总结(6)——WebService常用接口

    商业和贸易:1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSer ...

  4. CF909B Segments

    CF909B Segments 题意翻译 题目描述 给你一个整数N.考虑坐标轴上所有可能的部分,在整数点上的端点,坐标在0到N之间,包括它们. 您希望在几个层中绘制这些片段,这样在每个层中这些片段就不 ...

  5. ClientProtocolException

    用httpclient 去訪问页面是会出现org.apache.http.client.ClientProtocolException 我这里出现的原因是在http请求时.请求头缺少user-agen ...

  6. HDU 2838 (树状数组求逆序数)

    题意: 给你N个排列不规则的数(1~N),任务是把它从小到大排好,每次仅仅能交换相邻两个数,交换一次的代价为两数之和.求最小代价 思路:对于当前数X.我们如果知道前面比它大的数有多少,如果为K,那么有 ...

  7. 杭电(hdu)ACM 4548 美素数

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  8. 内存问题检测神器:Valgrind

    Linux下内存问题检测神器:Valgrind 在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题. ...

  9. 从极大似然估计的角度理解深度学习中loss函数

    从极大似然估计的角度理解深度学习中loss函数 为了理解这一概念,首先回顾下最大似然估计的概念: 最大似然估计常用于利用已知的样本结果,反推最有可能导致这一结果产生的参数值,往往模型结果已经确定,用于 ...

  10. 20个非常有用的Java程序片段--转

    原文地址:http://geek.csdn.net/news/detail/236591 下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = ...