git教程:Git教程
首先要安装:git for windows(git的命令行版本),也可以使用淘宝镜像进行下载:http://npm.taobao.org/mirrors/git-for-windows/
接着再安装:tortoise git(git的图形界面)
注意:
两个工具安装完毕后, 需要重启电脑才能正确使用.
(1)设置用户名和邮箱
在gitbash命令行下进行配置用户名和邮箱。用户名和邮箱需要与远程仓库一致。
git config --global user.name "Jery"
git config --global user.email "[email protected]"
注意:
(2)配置SSH公钥
配置了公钥之后你的机器和 github 通信的时候 ,github 就可以通过公钥识别出你是可信赖用户,这样就不需要每次 git 和 github 通信的时候都要输入密码了。同时,也保证了数据传输的安全性。
生成SSH Key:ssh-keygen –t rsa –C "你的邮箱@xx.com"
弹出选项时,一路回车即可。
将生成的公钥信息(/root/.ssh/id_rsa.pub
中的文本),添加到远程仓库的公钥中即可:
(1) Git本地有四个工作区域:
工作目录(Working Directory):平时存放项目的文件夹
暂存区(Stage) : 暂时存放修改的文件
本地仓库(Repository) :保存了所有版本的数据
远程的git仓库(Remote Directory): 托管代码的服务器
git add .
)git commit -m " 描述"
)git push
)git add xx文件名
,将某个文件提交到暂存区;git add .
将所有未提交的文件提交到暂存区;先有本地库,后有远程库,需要先将本地库push到远程库。
(1)创建本地仓库
在需要创建仓库的文件夹下输入命令,将当前目录变为仓库。
git init
注意:
创建好后会有一个,git文件,仓库的版本信息都在这个文件里面
(2)与远程仓库建立连接
git remote add origin 远程仓库地址 #和远程仓库建立连接
git remote -v # 查看当前仓库的连接信息
git remote rm origin # 解除本地和远程的绑定关系
注意:
origin是远程仓库的名字
先有远程库,后有本地库,从远程库clone到本地库。
从远程库克隆到本地:
git clone 网站上的仓库地址
注意:
如果选择SSH协议,必须将Ubuntu的公钥添加到GitHub上。
在创建好的项目中点击Clone or download,可以看到HTTPS对应的地址,我们可以利用该地址进行clone或者download。
(1) 复制刚才创建好的项目的链接
(2) 打开指定的需要放置项目的目录
(3) 右击目录, 点击Git Clone
(4) 在弹出的对话框中输入刚才复制的项目链接即可.
(1)提交给git管理
右键项目文件,点击TortoiseGit>>>Add,然后选择需要管理的文件。
此时文件变为红色感叹号,表示文件已被git管理,但是未提交内容。
(2)将修改内容提交到本地
每提交一次, 就是一个版本. 比如开发完某个功能模块, 就可以进行提交. 后续进行版本回退都是以提交的版本为准.
红色叹号文件右键,点击Git Commit -> “master”…
此时弹出了一个对话框. 可以在此处看到需要提交哪些文件, 以及每个文件的具体改动情况. 并且需要输入提交日志Message. 描述这次提交的具体改动原因是什么. 这个日志是后续进行版本回退的重要参考依据.
注意:
(3)将项目提交到服务器
提交的内容需要同步到服务器上, 才能在Github上看到。 右键需要提交的目录, 点击TortoiseGit->push。
此时刷新GitHub页面就可以看到我们提交的目录了。
(1)将git集成进IDEA开发工具
(2)使用IDEA连接Git远程仓库
此时idea中自动出现了git相关的操作以及控制面板:
不推荐使用git操作按钮,我们直接在 terminal面板 进行操作即可(add、commit、push)
git add hello.java //将hello.java添加到暂存区
git add . //将所有未暂存的添加到暂存区
git commit -m "hello测试文件" //将变动提交到本地仓库
git push //将本地仓库提交到gitHab
(1)新建分支
当前在哪个分支上,新建出来的分支就是基于哪个分支建立的。
新建的分支commit/push后,会在gitee上显示出来:
(2)切换分支
(3)commit/push/历史版本记录:
(4) 合并分支
Merge:切换到主分支,将主分支的最新变化pull到本地,然后切换回自己的分支进行commit后就可以进行Merge合并操作了。
左边是自己维护的分支,右边是主分支,中间是最后合并后的结果。红色代表两方都改动了同一片代码,存在冲突;绿色代表新增代码,双方没有冲突;蓝色代表原代码一方有改动。
基本查看命令:
git --version #查看git的版本信息
git config -l #查看配置
git status [filename] #查看指定文件状态
git status #查询仓库状态
连接命令
git init #创建本地仓库
git remote add origin 远程仓库地址 #和远程仓库建立连接
git remote -v #查看当前仓库的连接信息
git remote rm origin #解除本地和远程的绑定关系
git clone [url] #克隆
基本操作
git add 文件名 #将文件添加到暂存区
git add . #将所有改动的文件添加到暂存区
git commit –m "描述"`#将暂存区提交到本地仓库
版本信息
git log #查看仓库历史记录
git diff 文件名 #比较文件差异(在git add之前使用)
git reflog #查看所有版本的commit ID
#HEAD{0},HEAD{1}即为版本ID
撤销命令:
git checkout -- 文件名 #撤销工作区的修改
git reset HEAD 文件名 #撤销暂存区的修改
git reset --hard 该版本ID #回退到历史版本
git reset --hard HEAD^ #回退到上个版本
注意:
HEAD^^
,也可用HEAD~2
表示,以此类推。打标签:
git log --oneline --all -n1 --graph #查看最近一次的版本提交
git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】
git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签
分支常用命令:
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
git branch -a #列出所有分支
git branch [branch-name] # 新建一个分支,但依然停留在当前分支
git checkout -b [branch] # 新建一个分支,并切换到该分支
git checkout branchName #切换分支
git checkout -f branchName #强制切换分支
git merge [branch] # 合并指定分支到当前分支
git branch -d [branch-name] # 删除分支
git push origin --delete [branch-name] # 删除远程分支
合并指定文件到当前分支:
git checkout 分支名 文件相对路径
注意:
在 git merge 期间,“ours”分支指的是要 merge 到的目标分支,“他们的”分支指的是要 merge 的分支。
(1)忽略单个文件夹
folder_name/
上述规则会告诉Git忽略名为folder_name的文件夹。
(2)忽略嵌套文件夹
folder_name/**
上述规则会告诉Git忽略名为folder_name的所有嵌套文件夹及其内容。
(3)忽略特定路径下的文件夹
path/to/folder_name/
上述规则会告诉Git忽略位于path/to路径下的名为folder_name的文件夹。