赞
踩
4.4 IDEA 集成 GitBash 作为 Terminal
git 的基础学习,学习目标:
Git是分布式的,Git不需要有中心服务器,我们每台电脑拥有的东西都是一样的。我们使用Git并且有个中心服务器,仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的。我们可以把它当做一个开发者的pc就可以就是为了大家代码容易交流不关机用的。没有它大家一样可以工作,只不过“交换”修改不方便而已。
常用的 linux 命令
ls、ll 查看 当前目录
cat 查看文件内容
touch 创建文件
vi vi 编辑器(使用vi 编辑器是为了方便展示效果)
安装完成:
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息
1、打开Git Bash
2、设置用户信息
git config --global user.name"zhangsan"
git config --global user.email '"emai@qq.com"
查看配置信息
git config--global user.name
git config--global user.email
- # 2.查看git用户名、密码、邮箱的配置
- $ git config user.name
- $ git config user.password
- $ git config user.email
-
-
- # 3.设置git用户名、密码、邮箱的配置
- $ git config user.name "you_username"
- $ git config user.password "you_pwd"
- $ git config user.email "123456@qq.com"
- # 3.设置git用户名、密码、邮箱的配置(全局配置)
- $ git config --global user.name 用户命
- $ git config --global user.name you_username
- $ git config --global user.password 密码
- $ git config --global user.password you_pwd
- $ git config --global user.password 邮箱
- $ git config --global user.email "123456@qq.com"
有些重用的指令参数非常多,每次都要输入好多参数,我们可以使用别名。
1、打开用户木兰路,创建.bashrc文件
2、在.bashrc文件中如数如下内容
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
3、打开 gitBash,执行
source ~/.bashrc
4、在以后的 git-log 中就可以看到
1.1 打开 gitBash 执行下面命令
git config --global cor.quotepath false
1.2、${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.utf-8"
要使用Git 对我们的代码进行版本控制,首先需要获取得到本地仓库
1)在电脑的任意位置创建一个空目录作为我们的蹦迪Git仓库
2)进入牡蛎中,点击右键打开 git bash 窗口
3)执行命令 git init
4)如果创建充公后可在文件夹下看到隐藏的.git 目录
Git 工作目录先对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git 的命令而发生变化
本章主要讲解如何使用命令来控制这些状态之间的转换:
1、git add 文件名/. (工作区--》暂存区) 文件名是添加指定文件,. 则是所有文件
2、git conmmit (暂存区---》本地仓库) git commit -m '描述内容'
3、版本回退
指令 | 作用 | 命令 | 说明 |
status | 查看修改状态(暂存区,工作区) | git status | |
add | 添加工作区一个或多个文件修改到暂存区 | 单个文件:git add 单个文件名|通配符 所有文件:git add . | |
commit | 提交暂存区内容到蹦迪仓库的当前分支 | git commit -m "描述内容" | |
log | 查看提交记录 | git log [option] | options: --all 显示所有分支 --prettyoneline 将提交信息显示为一行 --abbrev-commit 是的输出 commitId 更简短 --graph 以图的形式显示 |
reset --hard commitID | 版本回退 | git reset --hard commitID | commitID 可以使用git -log 或者git log 指令查看 查看已经删除的记录 git reflog 这个指令可以看到已经删除的提交记录 |
git reflog | 查看已经删除的记录 | git reflog | |
git commit commit ID --hard | 版本回退 | git commit commit ID --hard | |
-------------- | -------------- | ------------------ | -------------- |
git branch | 查看本地分支 | git branch -a | 查看所有分支 |
git branch | 创建分支名称 | git branch 分支名称 | 创建分支 |
git checkout | 切换分支 | git checkout 分支名称 | 切换分支已经存在的分支 切换为主分支: git checkout master |
gti checkout | 创建并切换到该分支 | git checkout -b 分支名称 | 切换到没有的分支 |
git merge | 合并分支 | git merge 分支名称 | 合并分支 |
git branch -d | 删除分支 | git branch -d b1删除分支,需要检查 git branch -D b1 不做如何检查,强制删除 | -d 删除需要做各种检查 -D不做如何检查,强制删除 |
-------------- | --------- | -------------- | -------------- |
git remote add origin | 添加远程仓库 | git remote add orte add origin +URl | URL 是远程仓库链接 |
git remote | 查看远程仓库 | git remote | |
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ] | 推送到远程仓库 | git push【-f】【--set-upstream】【远端名称【本地分支名】【:远端分支名】】 | -f 表示强制覆盖 --set-upstream 推送到远端的同时并且加你起和远端分支的关联关系。 ;git push --set-upstream origin master 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。 git push 等 master 分支推送到已关联的远端分支 |
git branch -vv | 查看远端分支和本地分支关联关系 | git branch -vv | |
git clone <仓库路径> | 克隆 | git clone <仓库路径> 【本地目录】 | 本地目录可以省略 |
git fetch 【remote name】【branch name】 | 抓取远端 | git fetch 【remote name】【branch name】 | 抓取指令就是将仓库里的更新都转去到本地,不会进行合并 |
git pull 【remote name】【branch name】 | 拉取远端 | git pull 【remote name】【branch name】 | 将全段仓库修改拉到本地进行合并,等同于 fetch + merge remote name : origin branch name :分支名称 |
在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。
在Git中,.gitignore文件用于指定哪些文件或文件夹不应该被Git跟踪。在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或文件夹 。
.gitignore文件可以放在应用程序的任何目录中并影响所有嵌套目录。它是一个纯文本文件,每行都可以包含一个匹配模式。
如果一行以“#”开头,则该行被视为注释并被Git忽略。
如果一行包含通配符“*”,则该行将匹配所有与通配符匹配的文件名。
如果一行包含“?”字符,则该字符将被视为任意一个字符 。
# 忽略文件结尾为.a的文件
*.a
# 忽略a 文件,但是跟踪a文件
!lib.a
# 仅忽略当前目录中的 TODO文件目录下的所有文件
/TODO
# 忽略build/目录中的所有文件
build/
# 忽略doc目录中 以 .txt 结尾的文件
doc/*.txt
# 忽略 doc/目录中的所有 .pdf文件
doc/**/*.pdf
- #####################仓库初始化######################
- # 创建目录(git_test01)并在目录下打开gitbash
- 略
- # 初始化git仓库
- git init
- #####################创建文件并提交#####################
- # 目录下创建文件 file01.txt
- 略
- # 将修改加入暂存区
- git add .
- # 将修改提交到本地仓库,提交记录内容为:commit 001
- git commit -m 'commit 001'
- # 查看日志
- git log
- ####################修改文件并提交######################
- # 修改file01的内容为:count=1
- 略
- # 将修改加入暂存区
- git add .
- # # 将修改提交到本地仓库,提交记录内容为:update file01
- git commit -m 'update file01'
- # 查看日志
- git log
- # 以精简的方式显示提交记录
- git-log
- ####################将最后一次修改还原##################
- # 查看提交记录
- git-log
- # 找到倒数第2次提交的commitID
- 略
- # 版本回退
- git reset commitID --hard
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到 master 分支,准备上线。
从develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支
从master 派生的分支,一般作为线上 bug 修复使用,修复完成后需要合并到 master 、test、develop分支
还有一些其他分支,在此不再详述,例如 test 分支(用于代码测试)、pre分支(预上线分支)等等
- ###########################创建并切换到dev01分支,在dev01分支提交
- # [master]创建分支dev01
- git branch dev01
- # [master]切换到dev01
- git checkout dev01
- # [dev01]创建文件file02.txt
- 略
- # [dev01]将修改加入暂存区并提交到仓库,提交记录内容为:add file02 on dev
- git add .
- git commit -m 'add file02 on dev'
- # [dev01]以精简的方式显示提交记录
- git-log
- ###########################切换到master分支,将dev01合并到master分支
- # [dev01]切换到master分支
- git checkout master
- # [master]合并dev01到master分支
- git merge dev01
- # [master]以精简的方式显示提交记录
- git-log
- # [master]查看文件变化(目录下也出现了file02.txt)
- 略
- ##########################删除dev01分支
- # [master]删除dev01分支
- git branch -d dev01
- # [master]以精简的方式显示提交记录
- git-log
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库
呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持
Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于
GitHub,码云速度会更快
GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作GitLab最新版下载安装_GitLab中文免费版-极狐GitLab中文官方网站
为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。
要想使用码云的相关服务,需要注册账号(地址:注册 - Gitee.com)
创建完成 初始化
生成 SSH 公钥
ssh-keygen -t rsa
不断回车
如果公钥已经存在,则自动覆盖
gitee 设置账户共公钥
获取公钥
cat ~/.ssh/id_rsa.pub
验证是否配置成功
ssh -T git@gitee.com
命令:
git remote add <远端名称><仓库路径>
远端名称,默认是 origin,取决于远端服务器设置
仓库路径,从远端服务器获取次 URL
命令:
git remote
命令:
git push 【-f 】【--set-upstream】【远端名称【本地分支名】【:远端分支名】】
如果 远程分支名和本地分支名称相同则可以只写本地分支
git push origin master
-f 表示强制覆盖
--set-upstream 推送到远端的同时并且简历和远端分支的关联关系。
git push --set-upstream orgin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名
git push 将master 分支推送到已关联的远端分支
查看关联关系我们可以使用 git branch -vv 命令
如果已经有了一个远程仓库,我们可以直接 clone 到本地。
命令:
git clone <仓库路径>【本地目录】
本地目录可以省略,会自动生成一个目录
远程分支和本地分支一样,我们可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,在进行操作
抓取命令
git fetch 【remote name】【branch name】
抓取指令就是将仓库里的更新都转去到本地,不会进行合并
如果不指定远端名称和防止名,则会转去所有分支
拉取命令
git pull 【remote name】【branch name】
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch + merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。
在一段时间,A,B用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突,
先拉取远程仓库提交,结果合并后才能推送到远程分支
远程仓库;练习
- ##########################1-将本地仓库推送到远程仓库
- # 完成4.1、4.2、4.3、4.4的操作
- 略
- # [git_test01]添加远程仓库
- git remote add origin git@gitee.com/**/**.git
- # [git_test01]将master分支推送到远程仓库,并与远程仓库的master分支绑定关联关系
- git push --set-upstream origin master
- ###########################2-将远程仓库克隆到本地
- # 将远程仓库克隆到本地git_test02目录下
- git clone git@gitee.com/**/**.git git_test02
- # [git_test02]以精简的方式显示提交记录
- git-log
- ###########################3-将本地修改推送到远程仓库
- # [git_test01]创建文件file03.txt
- 略
- # [git_test01]将修改加入暂存区并提交到仓库,提交记录内容为:add file03
- git add .
- git commit -m 'add file03'
- # [git_test01]将master分支的修改推送到远程仓库
- git push origin master
- ###########################4-将远程仓库的修改更新到本地
- # [git_test02]将远程仓库修改再拉取到本地
- git pull
- # 以精简的方式显示提交记录
- git-log
- # 查看文件变化(目录下也出现了file03.txt)
选择File→Settings打开设置窗口,找到Version Control下的git选项:
第一步:打开项目
第二步:创建一个 git 仓库
第三部:将其文件添加到暂存区
第四部提交到本地仓库
第五步:将文件提交到远程仓库
第六: 查看提交日志(当提交到本地仓库即可查看到)
第一步:打开 IDE
第二步:找到 VCS --》选择 Get from Version...
先拉取,在提交
1、提交相同的修改地方
提示代码冲突
中间就是当前代码,左右两侧表示不同地方
拉取代码时选择需要拉取的分支
合并分支
1、第一张图上的快捷入口可以基本满足开发的需求。
2、第二张图是更多在IDEA操作git的入口。
1.1 打开 gitBash 执行下面命令
git config --global cor.quotepath false
1.2、${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.utf-8"
- # 查看用户名 :
- git config user.name
-
- # 查看密码:
- git config user.password
-
- # 查看邮箱:
- git config user.email
-
- # 查看配置信息: $
- git config --list
-
- 修改用户名
- git config --global user.name "xxxx(新的用户名)"
-
- 修改密码
- git config --global user.password "xxxx(新的密码)"
-
- 修改邮箱
- git config --global user.email "xxxx@xxx.com(新的邮箱)"
-
-
- 取消(删除)记录账号和密码
- git config --system --unset credential.helper
-
-
- 对于Windows系统,你可以执行以下命令来重新启用 manager 凭证助手:
- git config --system credential.helper manager
-
-
- 对于macOS系统,如果你想使用OS X Keychain作为凭证助手,可以使用:
- git config --system credential.helper osxkeychain
-
-
- 对于Linux或其他系统,如果没有特定的偏好,可以考虑使用 cache 凭证助手,它会将凭证存储在内存中一段时间:
- git config --system credential.helper cache
-
-
-
- 查询 凭证存储模式
- git config --system credential.helper
- 或
- git config --system --list
- 或
- git config --system -l
-
如果还是不行,需要确认windows凭据是否存在之前的git信息
找到控制面板 —》用户账户 --》凭据管理器 --》管理windows凭据
找到后修改即可。
工作区=》暂存区 git add .
暂存区=》仓库 git commit -m '描述'
查看状态 git status
查看提交记录 : git log
版本回退 : git reset --hard <commitID>
查看分支:git branch
创建并切换分支 git checkout -b 分支名称
分支合并 git merge 分支名 (需要先切换分支)
添加远程仓库 git remote add origin <URL或者仓库名称>
推送远程仓库 git push [-f] [--set-upstream]【远端名称【本地分支名】【:远程分支名】】
查看远程分支与本地分支名关联关系 git branch -vv
从远程分支克隆项目 git clone <URL>
从远程仓库中抓取代码 git fetch 【remote name】【branch name】
从远程仓库拉取代码 git pull 【remote name】【branch name】
- - 基本操作类
- git init
- 初始化仓库
- git log 【option】
- option:
- --all 显示所有分支
- --pretty=oneline 将提交信息显示为一行
- --abbrev-commit 使得输出的commitId更简短
- --graph 以图的形式显示
- 查看日志
- git commit -m '描述'
- 提交到仓库
- git merge <分支名>
- 合并指定分支到当前活跃分支
-
-
- - 分支切换类
- git checkout <分支名>
- 切换分支到某个分支
- git checkout -b <分支名>
- 创建并切换到某个分支
-
- -远程操作
- git clone <远程地址>[本地文件夹]
- clone 远程仓库到本地
- git pull
- 拉取远端仓库的修改并合并
- git push [--set-upstream] origin 分支名
- 推送本地修改到远端分支
- --set-upstream 表示和远端分支绑定关联关系,只有第一次推送时才需要修改
- git fetch 【remote name】【branch name】
- 抓取代码
1、切换分支前提交本地的修改
2、代码及时提交,提交过了就不会丢
3、提交前先拉取代码,在提交
- # 远程仓库穿件完成后 初始化仓库
- git init # 初始化一个git 本地仓库(项目),会在本地创建一个 .git 的文件夹
-
-
- # 添加远程仓库
- git remote add https://gitee.com/你的码云用户名/XXX #添加远程仓库
-
-
-
- #工作区=》暂存区
- git add .
-
-
- # 暂存区=》本地仓库
- git commit -m '描述'
-
-
- #本地仓库 =》 远程仓库
- git push origin master # 可能会报错 error: failed to push some refs to
-
-
-
- # 当出现错误 error: failed to push some refs to :使用强制推送
- git push -u origin master -f
commit的文件
- git rm 要忽略的文件
- git commit -a -m "删除不需要的文件"
-
- 在.gitignore文件中添加忽略规则
-
- (1) 在.gitignore文件中添加ignore条目, 如: some/path/some-file.ext
- (2) 提交.gitignore文件: git commit -a -m "添加gitignore规则"
-
- 推送到远程仓库是ignore规则对于其他开发者也能生效: git push [remote]
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。