Git
定义
Git是目前世界上最先进的分布式版本控制系统;是免费的、开源的
优点:a适合分布式开发,强调个体b.公共服务器压力和数据量都不会太大c.速度快、灵活 d.任意两个开发者之间可以很容易的解决冲突 f.离线工作
缺点:模式上比SVN更加复杂 不符合常规思维 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有的代码和版本信息
下载安装git
git官网: https://git-scm.com/
1.下载


2.安装
一直点击next,直到出现install,点击install,安装完成后点击finish:









3.安装完成后
安装好后在桌面界面点击鼠标右键,会出现如下界面

4.检查git是否安装OK
键盘Ctrl+r,然后在弹出框中出入cdm,弹出如下界面,输入git,回车


环境配置
1.git安装好去GitHub上注册一个账号,注册好后,点击桌面上的Git Bash快捷图标,我们要用账号进行环境
2.生成ssh
继续刚才的操作,在命令框中输入以下命令
然后连敲三次回车键,结束后去系统盘目录下(一般在 C:\Users\你的用户名.ssh)(mac: /Users/用户/.ssh)查看是否有。ssh文件夹生成,此文件夹中以下两个文件


4.将ssh文件夹中的公钥( id_rsa.pub)添加到GitHub管理平台中,在GitHub的个人账户的设置中找到如下界面

title随便起一个,将公钥( id_rsa.pub)文件中内容复制粘贴到key中,然后点击Ass SSH key就好啦


在完成的同时也会发邮箱
5.测试配置是否成功
在Git Bush命令框(就是刚才配置账号和邮箱的命令框)中继续输入以下命令,注意要输入yes 回车

bash基本操作命令
1.改变目录
1.cd : 改变目录。
开始时

改变后

2.cd~回Home(windows是当前用户所在目录)
改变后

3.cd . . 回退到上一个目录,直接cd进入默认目录

4.pwd : 显示当前所在的目录路径
输入pwd后回车就会显示出路径

2.文件操作
1.ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
ls效果

ll效果

2.touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件

3.rm: 删除一个文件, rm index.js 就会把index.js文件删除。

4.mv 移动文件, mv index.html src o1 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

5.创建文件
小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入 >>是追加内容 >是覆盖原有内容

6.显示文件内容cat
运用cat直接打印出文件的内容

3.文件夹操作
1.mkdir: 新建一个目录,就是新建一个文件夹。

2.rm -r : 删除一个文件夹, rm -r src 删除src目录, 好像不能用通配符。

4.输入框操作
1.reset 重新初始化终端/清屏。

输入reset后

2.clear清屏

3.history 查看命令历史。

4.help 帮助。

5.exit退出
6.#表示注释
7.输出与注释

Git配置——git config
1.查看配置
使用git config -l 可以查看现在的git环境详细配置

查看系统config git config --system --list

查看当前用户(global)配置 git config --global --list

查看当前仓库配置信息 git config --local --list

2.Git相关的配置文件有3个
1)、 /etc/gitconfig:包含了适用于系统所有用户和所有项目的值。(Win:C:\Program Files\Git\mingw64\etc\gitconfig) --system 系统级
2)、~/.gitconfig:只适用于当前登录用户的配置。(Win:C:\Users\Administrator.gitconfig) --global 全局
3)、位于git项目目录中的.git/config:适用于特定git项目的配置。(Win:C:\gitProject) --local当前项目
注意:对于同一配置项,三个配置文件的优先级是1<2<3,这里可以自己尝试一下
3.添加或删除配置项
–local 项目级
–global 当前用户级
–system 系统级
1.添加配置项
git config [--local|--global|--system] section.key value
查看系统级配置

添加配置及查看

注意看getconfig是在你git解压的地址

2.删除配置项
git config [--local|--global|--system] --unset section.key
将系统级的height配置项移除

3.更多配置项
git config --global color.ui true #打开所有的默认终端着色
git config --global alias.ci commit #别名 ci 是commit的别名
[alias]
co = checkout
ci = commit
st = status
pl = pull
ps = push
dt = difftool
l = log --stat
cp = cherry-pick
ca = commit -a
b = branch
user.name #用户名
user.email #邮箱
core.editor #文本编辑器
merge.tool #差异分析工具
core.paper “less -N” #配置显示方式
color.diff true #diff颜色配置
alias.co checkout #设置别名
git config user.name #获得用户名
git config core.filemode false #忽略修改权限的文件
4.所有config命令参数
语法: git config []
文件位置
–global #use global config file 使用全局配置文件
–system #use system config file 使用系统配置文件
–local #use repository config file 使用存储库配置文件
-f, --file #use given config file 使用给定的配置文件
–blob #read config from given blob object 从给定的对象中读取配置
动作
--get #get value: name [value-regex] 获得值:[值]名[正则表达式]
--get-all #get all values: key [value-regex] 获得所有值:[值]名[正则表达式]
--get-regexp #get values for regexp: name-regex [value-regex] 得到的值根据正则
--get-urlmatch #get value specific for the URL: section[.var] URL 为URL获取特定的值
--replace-all #replace all matching variables: name value [value_regex] 替换所有匹配的变量:名称值[ value_regex ]
--add #add a new variable: name value 添加一个新变量:name值
--unset #remove a variable: name [value-regex] 删除一个变量名[值]:正则表达式
--unset-all #remove all matches: name [value-regex] 删除所有匹配的正则表达式:名称[值]
--rename-section #rename section: old-name new-name 重命名部分:旧名称 新名称
--remove-section #remove a section: name 删除部分:名称
-l, --list #list all 列出所有
-e, --edit #open an editor 打开一个编辑器
--get-color #find the color configured: slot [default] 找到配置的颜色:插槽[默认]
--get-colorbool #find the color setting: slot [stdout-is-tty] 发现颜色设置:槽[ stdout是TTY ]
类型
--bool #value is “true” or “false” 值是“真”或“假”。
--int #value is decimal number 值是十进制数。
--bool-or-int #value is --bool or --int 值–布尔或int
--path #value is a path (file or directory name) 值是路径(文件或目录名)
其它
-z, --null #terminate values with NUL byte 终止值与null字节
--name-only #show variable names only 只显示变量名
--includes #respect include directives on lookup 尊重包括查找指令
--show-origin #show origin of config (file, standard input, blob, command line) 显示配置(文件、标准输入、数据块、命令行)的来源
Git操作
获取GIT仓库
创建本地仓库的方法有两种:一种是创建全新的仓库
另一种是克隆远程仓库。
创建全新仓库
在当前目录新建一个Git代码库 git init

这里要注意git文件夹是隐藏的文件需要去打开隐藏的项目

新建一个目录,将其初始化为Git代码库 git init [project-name]

克隆远程仓库
另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地,而不是取某一个特定版本,所以用clone而不是checkout git clone [url]
比如我们要从克隆的远程仓库托管在github上,地址为:https://github.com/lshtodream/helloworld

在本地文件下

GIT文件操作
文件四种状态:Untracked: 未跟踪 、Unmodify: 文件已经入库, 未修改、Modified: 文件已修改, 仅仅是修改、Staged: 暂存状态
查看文件状态
查看指定文件状态 git status [filename]

查看所有文件状态 git status

添加文件与目录
添加指定文件到暂存区
git add [file1] [file2] …
添加指定目录到暂存区,包括子目录
git add [dir]
添加当前目录的所有文件到暂存区
git add .
移除文件与目录(撤销add)
当执行如下命令时,会直接从暂存区删除文件,工作区则不做出改变
直接从暂缓区删除文件,工作区则不做出改变
git rm --cached
通过重写目录树移除add文件:
如果已经用add命令把文件加入stage了,就先需要从stage中撤销
git reset HEAD …
移除所有未跟踪文件
一般会加上参数 -df,-d表示包含目录, -f表示强制清除
git clean [options]
#只从stage中删除,保留物理文件
git rm --cached readme.txt
#不但从stage中删除,同时删除物理文件
git rm readme.txt
#把a.txt改名为b.txt
git mv a.txt b.txt
上传项目到GitHub
1.测试ssh key
提示
The authenticity of host ‘github.com (xxx.xxx.xxx.xxx)’ can’t be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
输入yes即可
2.假如没有设置密码

3.输入
git config --global user.name “你github的名字”
git config --global user.email “你的github邮箱地址”
4.创建一个文件库来存储我们从GitHub下载 cd:o1
在该文件夹下创建文件Hello.txt

5.在github上创建一个仓库 New repository

6.接下来就是用git 工具了。提交到本地库,用命令行将我们的本地仓库与github上的仓库连接起来,如下图:

7.完成效果

git网站
国外GitHub:http://github.com
国内码云:http://git.oschina.net
参考博客:https://www.cnblogs.com/best/p/7474442.html#_label3_3_2_5
https://www.cnblogs.com/litingyuan/p/11198466.html
注册账户密码

pull项目
1.使用git方式导入项目
我使用的是eclipseIDE2019-09 R (4.13.0)
菜单-File->import->Git->Projects from Git

2.选择Clone URL
这表示使用的是某个服务器上的git资源

3.输入git参数
URI: https://github.com/how2j/hellogit.git
Host: github.com
Respository path: /how2j/hellogit.git
按理说只要URI输入了地址,后面两个参数就会自动生成
然后输入账号密码
最后Store in Secure Store勾上,表示Eclipse会保持你的账号密码。

4.是否提供密码提示
一般选择no

5.选择分支
这是一个简单项目,只有一个分支,选master

6.本地存放位置
这个地址是看你自己怎么选

7.导入此项目到Eclipse中
选择import existing Eclipse projects

8.确定位置

9.运行HelloGit
运行项目里的hellogit

在eclipse创建项目上传到GitHub网页上
1.在git上新建仓库
首先登陆github.com
然后点击右上角账号左边的加号,点击New repository创建仓库。
Git上仓库就相当于项目的意思

2.输入仓库名称
这里输入仓库名称helloworld
注: 不要选 Initialize this repository with a README, 否则会出来奇奇怪怪的问题

3.创建成功,得到git地址

4.在eclipse中创建自己要上传的项目
在Eclipse中创建一个java项目:helloword, 同时建立一个HelloWorld类

5.上传项目
右键项目->Team->Share Project

6.配置仓库
配置仓库,点击一下 Use or create repository in parent folder of project

7.创建仓库
第一步: 点击第一个红框框
第二步: 点击第二个红框框
第三步: 点击Finish

8.提交项目
右键项目->Team->Commit

9.设置提交信息
设置提交信息:test
需要将unstaged changes里的文件导入staged changes
最后点击commit and push

10.设置git参数
URI: https://github.com/how2j/helloworld.git
Host: github.com
Respository path: /how2j/helloworld.git
注意这里的url是你在GitHub中创建仓库生成的地址
按理说只要URI输入了地址,后面两个参数就会自动生成
然后输入账号密码最后Store in Secure Store勾上,表示Eclipse会保持你的账号密码。

11.指定分支
使用默认的分支:master

12.提交成功

13.图标变化

14.观察github上的项目
打开地址:https://github.com/how2j/helloworld
即可看到github上创建的项目

git修改自己的代码
1.在eclipse中修改自己的源代码

2.提交修改
右键HelloWorld.java->Team->Commit

3.输入提交信息

4.提交成功

git修改别人的代码
1.在github上进行Fork操作
- 首先用自己的账号密码登陆
- 访问我的hellogit项目:https://github.com/how2j/hellogit
- 点击右上角的 Fork 按钮

2.随便做点修改
Fork之后,hellogit就会被克隆一份到你的账号上,接着对HelloGit随便做点什么修改

3.发起New Pull Request
回到github的hellogit项目下,然后点击New Pull Request,即发起一次合并请求。
既然是合并请求,为什么叫Pull Request呢? 这是站在原项目主的角度的一个动词,即发起一次请求,希望原项目主,可以把你的改动,拉进到他的项目里去。

4.比较改变的地方
比较文件和原项目中的文件有什么区别,然后点击Create pull request

5.填写修改原因
填写修改文件的原因,然后点击Create pull request

6.修改提交完成
这样pull request就发出去了,然后就没你什么事了。
原项目主会收到你改变的邮箱,只要他同意后就能同意你的建议了
剩下的就是原项目主自己判断,是否要接受你的这次pull request了。
1543

被折叠的 条评论
为什么被折叠?



