GIT学习
1.git 常用命令代码
提交,或者修改代码到暂存区
git add
2.设置签名
git config user.name JackMa
git config user.email 13187362159@163.com
3.返回系统+目录
cd ~
4.设置系统git签名(/c/Users/ponyMa/.gitconfig)
git config --global user.name JackMa
git config --global user.email 13187362159@163.com
5.查看隐藏目录结构
ls -la 或者 ll -la 或者 ls -la||less
6.查看工作区,暂存区 文件当前的状态
git status
7.删除文件
git rm —cached 文件名 ( git rm --cached good.txt 移除git暂存区的文件)
rm aaa.txt(删除指定 aaa.txt 是文件名)
8.提交git暂存区中的文件
git commit 文件名( git commit good.txt 要进入)
git commit -m “update” good.txt(以直接写注释的方式提交)
git commit -m “update”(提交暂存区中的所有文件,不带文件名)
9.查看提交文件的日志(历史记录)
git log(查看文件提交的历史记录)
git log --pretty=oneline(日志按一行的模式显示)
git log --oneline(显示更加简洁)
git reflog(HEAD@{移动到当前版本的步数} 回退到某个版本需要移动几步)
10.回退指定当前文件的版本
git reset --hard 593a611 (593a611指定的版本号(可以用 git reflog命令查看))
git reset --hard ^^(只能向后回退3个版本,几个就向后回退几个版本)
git resret --hard head3(只能向后回退3个版本,可以指定数字是多少就向后回退几个版本)
git reset --soft 593a611 (593a611指定的版本号只是移动了本地库的版本号(可以用 git reflog命令查看))
git reset --mixed 1ff49dd(1ff49dd指定的版本号只是移动了本地库和暂存区的版本号(可以用 git reflog命令查看)))
git reset --hard head (删除操作未提交到本地库,可以回滚 )
10.比较文件的差异
git diff [文件名] (将工作区中的文件和暂存区进行比较文件)
git diff head^ [文件名] (和上一个文件比较)
git diff 31d6325 apple.txt(git diff [版本号] [文件名])
git diff (不带文件名比较多个文件)
11.分支操作
git branch 分支名 (创建分支)
git branch -v (查看所有分支)
git branch hot_fix(创建指定名称的分支)
git checkout hot_fix(切换分支,切换分支的时候一定要注意,当前的分支是否有文件未提交到工作区)
git merge hot_fix(合并分支,前提需要切换到主分支上面git checkout hot_fix)
12.解决切换分支出现的问题
HEAD 当前分支的内容
进入编辑模式
DD 删除当前行
DD [参数] (参数可以输入3行,就删除3行)
PP 复制行
PP [参数](参数可以输入3行,就复制3行)
13 Git 加密算法底层采用的SHA-1算法
13.1 集中式版管理工具机制(svn)13.1.1 保存每个文件变化的代码,以增量的方式保存,可以节约服务器的空间
13.1.2 分支:把所有的文件复制一份分支上。
13.2 分布式版管理工具机制(Git)
以快照的方式管理每个文件的版本.
分支:(新建分支)建一个指针,(切换分支)移动一个指针就好了.
14.指定查看某个文件的显示的行数
tail -n 显示的条数 文件名 (tail -n 10 good.txt 10 是显示的条数 good. txt 是文件名)
15.多屏显示方式
空格 向下翻页
b 向上翻页
q 退出
16.设置Git提交的命令
git remote -v 查看git地址
git remote add [别名] [git地址] 指定提交远程库的地址 (git remote add origin https://github.com/mahukang/huashan.git)
git push [别名] [分支名] 向远程库提交指定分支的文件(git push origin master 注意看下是否有新文件上传)
git clone [地址] 克隆项目(目标需要复制 git clone https://github.com/mahukang/huashan.git
)1.好处:完整的把远程库下载到本地,2.创建origin远程地址别名,3.初始化本地库
git fetch [别名] [分支名] 拉取远程库指定分支的文件(git push origin master 注意看下是否有新文件上传)
git log -p master… origin/master 从远程的origin仓库的master分支下载代码到本地的origin master
git checkout origin/master 查看拉取后未合并的文件(注意一定要执行拉取命令后在看)
git merge [远程别名]/[远程分支名] 合并代码 (git merge origin/master 远程下载下来的代码合并到本地仓库,远程的和本地的合并)
git pull [远程别名] [远程分支名] 从远程库拉取文件到本地 (git pull origin master 前提是不起冲动的情况下,执行这个命令,否则执行git push origin master,在执行git merge origin/master即可达到同样的效果)
17.Git加入成员
设置—>协作者–>添加用户
18.跨团队协作操作
新建一个账号 1421731820@qq.com
没有权限提交(因为此时的账号是13187362159@163.com)
解决权限的问题,到控制面板—>用户账户–>管理windows凭证–>删除git网站的凭证即可重新输入你拥有该网站的提交权限
访问者git网站–>pull request–>Create pull request
属于者git网站–>pull reques–>点击需要提交的文件
合并代码 Merger pull request(点击没有反应的话,建议用chrome)
>>点击 Confirm merge
19.配置免密登陆
1.进入到根目录 cd ~
2.检查目录 cd .ssh/
2.1 没有 就执行
ssh-keygen -t rsa -C 13187362159@163.com
2.2 有 执行进入目录执行ls -lf
3.查看SSH密钥 cat id_rsa.pub
4.进入Git网站 配置免密登陆
5.复制SSH免密登陆的地址
6.创建免密库 git remote add origin_ssh git@github.com:mahukang/huashan.git
7.推送免密库
7.1此处注意不是git push origin master(未配置ssh密钥的库,这时还需要你输入账号和密码后才能提交)
7.2正确做法 git push origin_ssh master
![图解29
- Elipse配置git
1.新建一个maven项目(注意不要在已经有的git目录下建项目,否则读不到配置)
1.1鼠标右键->>new ->>选择other–>Maven Project(按Ctrl+N的热键进入新建选项)
1.2 New Maven Project 选择相对应的选项,下面有属性的解释
Create a simple project (skip archetype selection) :创建一个简单的项目(跳过对原型模板的选择)[默认勾选]
User default Workspace location:使用本地默认的工作空间
–Loaction:本地工作空间目录
Add project(s) to working set :增加项目到工作集
1.2 填写相对应的项目配置
[外链图片转存失败(img-FSSf1qXc-1565534719924)(./1563093024760.png)]项目配置选项简要说明
-------Group Id:组Id,针对一个项目的普遍唯一识别符。相当于我们日常使用的包名,例如:com.git.
-------Artifact Id:要新建的项目的名字
-------Version:版本号,默认0.0.1-SNAPSHOT
-------Packing:要将该项目生成什么类型,有jar,war,ejb,ear,rar,pom,maven-plugin,maven-archetype,osgi-bundle,eclipse-plugin
-------Name:名字(估计是模板的名字)
-------Description:说明
Parent Project(父项目)以之前的项目作为基础新建项目,点Browse出现(如图6:选择项目),可以以原有的项目作为基础新建,必须为Jar或者pom才行
1.3 创建web.xml文件 工程–>-->Java EE Tools -->Generate Deployment Descriptor Stub
2.工程初始化为git本地库
2.1 工程–>Team–>sharProject–>git
2.2 Create Repository
2.3 检查本地库是否初始化成功
2.4 工程本地库设置签名
3.Eclipse中忽略文件
1.Eclipse特定文件
这些都是Eclipse为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系。最好不要在Git中进行追踪,也就是说可以把他们忽略了。.classpath 文件
.project 文件
.settings 目录下所有文件
2.为什么要忽略Eclipse特定文件呢?
同一团队中很难保证大家使用相同的IDE工具,IDE工具不同时,相关工程特定文件就有可能不同,如果这些文件加入版本控制,那么开发时很可能需要为了这些文件解决冲突。
3.GitHub官网样例文件
3.1 https://github.com/github/gitignore 找到Java.gitignore
3.2 配置全局的javaGit提交忽略
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
3.3 在~/.gitconfig 文件中引入上述文件
excludesfile=C:/Users/ponyMa/Java.gitignore
[注意:这里路径中一定要使用"/",不要使用'\']
3.4 Eclipse检查特定文件是否生效?
3.5 推送到远程库
3.5.1 首先在Git上新建一个和项目名一样的库 (https://github.com/mahukang/TestGit.git)]
3.5.2 Eclipse 推送设置
3.5.3 输入账号和密码进行提交
3.5.4 添加到暂存区
3.5.5 添加提交说明
![图解44 设置提交注释
3.5.6 提交成功的提示
3.6 克隆工程
3.6.1 鼠标右键–>import–>import
3.6.2 配置远程库拉取的Git地址
![图解47 导入步骤-2
3.6.3 默认为 C:\Users\ponyMa\git\TestGit
3.6.4 选择导入项目的属性
3.6.5 转换成Maven项目
3.6.6 解决冲突 Merge Tool
4 分支实战
两个项目的目录:D:\git\TestGitProject\TestGit E:\baosight\Project\Git\TestGit
- 搭建GitLab服务器
1.安装CentOS-7 安装过程见本文https://blog.csdn.net/qq_24862137/article/details/100122590
2.配置外网规定ip cd /etc/sysconfig/network-scripts/
3.重启网卡 service network restart 此处需要注意没有重启网卡是不生效的。
4.查看ip ifconfig
3.安装并配置必要的依赖关系
3.1 安装ssh sudo yum install -y curl policycoreutils-pythonopenssh-server
![]()
3.2 将SSH服务设置成开机自启动,安装命令:sudo systemctl enable sshd
3.3 启动SSH服务,安装命令:sudo systemctl start sshd
3.4 安装防火墙 yum install firewalld systemd -y
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
3.5 开启防火墙 service firewalld start
3.6 添加http服务到firewalld,pemmanent表示永久生效,若不加–permanent系统下次启动后就会失效 sudo firewall-cmd --permanent --add-service=http
3.7 重启防火墙 sudo systemctl reload firewalld
3.8 安装Postfix以发送通知邮件 sudo yum install postfix
![]()
![]()
3.9先检查一下wget 安装 wget -v 确保安装 wget yum -y install wget
.
4.0 下载GitLab镜像源 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
4.1 安装GitLab镜像源 rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
这里需要等待一段时间 当看到GitLab图标的时候GitLab服务器就搭建好了[外链图片转存失败(img-iKfu9EGB-1566984443687)(./1565536124027.png)]
4.2 修改gitlab配置文件指定服务器ip和自定义端口 vim /etc/gitlab/gitlab.rb
[外链图片转存失败(img-GASQPPVM-1566984443688)(./1565536291709.png)]
记住切换root账户 命令: su root
进入编辑器后按“i”键进入编辑状态,ESC键退出编辑状态
退出并保存,命令输入“:wq”
ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
4.3 改完配置重启GitLab
1.启动服务 gitlab-ctl reconfigure
[外链图片转存失败(img-bfCh94VJ-1566984443688)(./1565537371156.png)][外链图片转存失败(img-JRrsOAWA-1566984443689)(./1565537498758.png)]
2. 启动所有gitlab 组件 sudo gitlab-ctl restart
[外链图片转存失败(img-kpgPAHjm-1566984443689)(./1565537721762.png)]
3. 查看服务状态 sudo gitlab-ctl status
[外链图片转存失败(img-iVBoK7zi-1566984443689)(./1565537753159.png)]
4. 停止所有 gitlab 组件 sudo gitlab-ctl stop
[外链图片转存失败(img-68pA9rc9-1566984443690)(./1565537799746.png)]
5. 查看日志 gitlab-ctl tail
[外链图片转存失败(img-lpYdPi2t-1566984443690)(./1565538768506.png)]
4.4 访问GitLab注意此处是你前面配置的ip 192.168.1.53 初始账户: root 密码:5iveL!fe
[外链图片转存失败(img-ckpGmNX6-1566984443690)(./1565537919347.png)] mahukang
4.5 访问成功
[外链图片转存失败(img-msgKeWHD-1566984443691)(./1565538219064.png)]