Git的使用(通过命令行, Eclipse, IDEA, Docker)

一. 通过命令行使用Git(以Windows为例)

1.安装Git-2.12.2.2-64-bit.exe

2.任何目录下, 右键, Git Bash Here

3.初次安装git配置用户名和邮箱

git config --global user.name "paul"
git config --global user.email "paulandcode@gmail.com"

4.查看是否已有ssh公钥

type %userprofile%\.ssh\id_rsa.pub

若没有, 则会提示找不到文件

5.若没有, 则去生成公钥

ssh-keygen -t rsa -C "paulandcode@gmail.com" -b 4096

生成过程中会让你设置公钥路径, 直接回车使用默认路径即可
还会让你设置密码, 若不设置密码, 则直接回车即可

6.添加公钥到远程仓库

cat ~/.ssh/id_rsa.pub

上面的命令会获得公钥, 然后需要你手动将公钥添加到远程仓库(如GitHub)

7.若是搭建的gitlab私服,则连接仓库时会提示无法解析主机名, 此时要在C:/Windows/System32/drivers/etc下的hosts文件中加入一行代码

192.168.0.233 gitlab.ywz.com

8.若本地没有原始代码, 需要从远程Git仓库下载原始代码到本地

cd new_folder
git clone ssh://git@github.com:paulandcode/blogs.git

9.若本地有原始代码, 远程Git仓库没有原始代码, 需要将原始代码上传到远程仓库. 若使用GitHub, 最好加上README.md, .gitignore, LICENSE这几个基本文件.

cd existing_folder
git init
git remote add origin https://github.com/paulandcode/paulandcode_lucene.git
git add .
git commit -m "Initial commit"
git push -u origin master

若提示: fatal: remote origin already exists, 则移除后再添加Git仓库

git remote rm origin

10.同步远程Git仓库代码到本地

git pull --rebase origin master

11.提交代码到本地Git仓库

git add test.html
git commit -m "Commit test.html"

12.提交本地Git仓库代码到远程Git仓库

git push -u origin master

二. 通过Eclipse使用Git

1.Window --> Show View --> Other...
Git的使用(通过命令行, Eclipse, IDEA, Docker)

2.搜索git, 选择Git Repositories
Git的使用(通过命令行, Eclipse, IDEA, Docker)

3.先复制好Git的仓库路径(如: git@github.com:paulandcode/blogs.git), 然后在Eclipse弹出的窗口粘贴路径, 最后一直点击下一步, 并选择本地项目保存路径即可下载整个项目到本地.
Git的使用(通过命令行, Eclipse, IDEA, Docker)
Git的使用(通过命令行, Eclipse, IDEA, Docker)

4.更新代码
选中要更新的文件夹点击右键 --> Team --> Pull (将服务器中新增的代码拉到本地, 若有冲突, 则会报错, 只会拉到在本地git仓库, 不会拉到本地代码中, 并且在项目名右侧会有↓提示, 例:offweb[offweb master ↓1], 这表示本地git仓库有1个文件等待拉取)

5.提交代码
选中要提交的文件夹点击右键 --> Team --> Add to Index --> Commit And Push(将本地代码提交到git服务器, 若有冲突, 则会报错, 只会提交到在本地git仓库, 不会提交到git服务器, 并且在项目名右侧会有↑提示, 例:offweb[offweb master ↑1], 这表示本地git仓库有1个文件等待提交)

6.解决冲突
不论是先Pull还是先Push, 都有一个规律:只有Pull之后才会出现冲突信息, 只有出现冲突信息后, 下一个push才可以提交成功. 所以解决冲突分三步: 第一步, Pull后出现冲突信息(Pull --> Push --> Pull 或者 Push --> Pull); 第二步, 解决冲突; 第三步, Push

7.使用Eclipse自带的Merge Tool解决冲突
选中项目根文件夹点击右键 --> Team --> Synchronize Workspace(与资源库同步) --> 有冲突的代码处(红色双向箭头)右键Merge Tool解决冲突 --> 解决完后右键Add to Index --> Commit And Push

三. 通过IDEA使用Git(IDEA, PyCharm, AndroidStudio等这些套路都类似)

1.在IDEA上通过Git或者GitHub检出项目
Git的使用(通过命令行, Eclipse, IDEA, Docker)
Git的使用(通过命令行, Eclipse, IDEA, Docker)

2.更新和提交
(1) 按键
Git的使用(通过命令行, Eclipse, IDEA, Docker)
上图5个按键分别是:更新、提交、比较、历史、Revert

(2) 文件类型
白:无修改;蓝:修改; 红:新增未Add Git; 绿:新增Add to Git
Git的使用(通过命令行, Eclipse, IDEA, Docker)

(3) 更新
点击更新后,请在Event Log页面查看结果(可能有种种原因更新失败)
Git的使用(通过命令行, Eclipse, IDEA, Docker)

(4) 提交
1> 点击Commit 按钮, 会直接提交至本地库. 更新至远程库需要再Push一次: VCS --> Git --> Push

2>点击Commit and Push: 提交到本地, 并且提交到远程仓库, Commit and Push按钮的位置在提交页面Commit按钮旁边的下拉箭头
Git的使用(通过命令行, Eclipse, IDEA, Docker)

(5) 比较
在History中右键compare
Git的使用(通过命令行, Eclipse, IDEA, Docker)

四. docker搭建GitLab的docker-compose.yml文件

version: "3.5"

services:
 gitlab:
  image: gitlab/gitlab-ce:10.5.4-ce.0
  restart: always
  container_name: gitlab
  ports:
   - "8085:80"
   - "2222:22"
  hostname: "gitlab.ywz.com"
  environment:
   GITLAB_OMNIBUS_CONFIG: |
    gitlab_rails['gitlab_shell_ssh_port'] = 2222
  volumes:
   - type: volume
     source: config
     target: /etc/gitlab
   - type: volume
     source: logs
     target: /var/log/gitlab
   - type: volume
     source: data
     target: /var/opt/gitlab

volumes:
 config:
  name: gitlab_config
 logs:
  name: gitlab_logs
 data:
  name: gitlab_data

五. .gitignore文件

.mymetadata
.checkstyle
.classpath
.project
.class
.war
.zip
.rar
.idea
*.iml
*.py[cod]
.settings/*
/indexes/*
/src/main/webapp/WEB-INF/classes/*
/src/main/webapp/userfiles/*
*/target/
*/target/*

小知识: Windows如何新建以"."开头的文件(如.gitignore文件)
情况: Windows下, 如果新建以"."开头的文件, 会提示: 必须键入文件名.
解决: 在文件名后面再加个".", 例如".gitignore.", 则可以新建.gitignore文件

上一篇:开启Nginx的目录文件列表功能


下一篇:阻塞队列BlockingQueue用法(转)