1 Git概述
从个人开发过渡到团队协作需求:版本控制

版本控制工具:
集中式版本控制工具: CVS、SVN(Subversion)、VSS……
分布式版本控制工具: Git、Mercurial、Bazaar、Darcs……
Git工作机制:

git的版本控制都是在本地库里做的–>分布式版本控制工具
代码托管中心: 局域网:GitLab / 外 网:Github.码云
2 Git常用命令
| 命令名称 | 作用 | 
|---|---|
| git init | 初始化本地库 | 
| git config --global user.name 用户名 | 设置用户签名 | 
| git config --global user.email 邮箱 | 设置用户签名 | 
| git status | 查看本地库状态 | 
| git add 文件名 | 添加到暂存区 | 
| git commit -m “日志信息” 文件名 | 提交到本地库 | 
| git reflog | 查看历史记录 | 
| git reset --hard 版本号 | 版本穿梭 | 
2.1 初始化本地库
语法: git init
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo
$ git init
Initialized empty Git repository in F:/Git-Space/git-demo/.git/
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ ll -a
total 4
drwxr-xr-x 1 Administrator 197121 0 Feb 27 18:05 ./
drwxr-xr-x 1 Administrator 197121 0 Feb 27 18:00 ../
drwxr-xr-x 1 Administrator 197121 0 Feb 27 18:05 .git/(初始化结果,生成.git文件夹)
2.2 设置用户签名
语法:
git config --global user.name 用户名
git config --global user.email 邮箱
实操:全局范围签名
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git config --global user.name zxk
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git config --global user.email zxk.com
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ cat ~/.gitconfig//家目录下生成签名文件
[user]
        name = zxk
        email = zxk.com
说明:
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
※注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系。
2.3 查看本地库状态
语法: git status
实操:
2.3.1 工作区无文件
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
2.3.2 检测到未追踪文件
新建文件–>查看状态
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ vim hello.txt//工作区创建文件
    hello zxk!hello git!//文件内容
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status
On branch master
No commits yet
Untracked files://检测到未追踪文件
  (use "git add <file>..." to include in what will be committed)
        hello.txt//红色显示
nothing added to commit but untracked files present (use "git add" to track)
2.3.3 检测到有新建的文件添加到了暂存区
添加暂存区–>查看状态(提示可从暂存区删除)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git add hello.txt//添加到暂存区
warning: LF will be replaced by CRLF in hello.txt.//自动转换行末换行符
The file will have its original line endings in your working directory
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status
On branch master
No commits yet
Changes to be committed:
//系统提示:可执行删除,但保留工作区文件-->回到有文件未追踪状态
  (use "git rm --cached <file>..." to unstage)
        new file:   hello.txt//由红到绿:文件被追踪到
2.3.4 提交完成后查看状态
提交本地库–>查看状态
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git commit -m "master first commit" hello.txt//提交本地库
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
[master (root-commit) da853d2] master first commit
 1 file changed, 1 insertion(+)//增加一行变更的内容
 create mode 100644 hello.txt
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status
On branch master//注意No commits yet 没有了
nothing to commit, working tree clean
说明:
被追踪过的文件(即添加过暂存库后来又修改过的),也可以从工作区直接添加到本地库,但没法删了,会有版本日志
2.3.5 工作区的文件有修改
修改文件–>查看状态–>提交本地库–>查看状态
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ vim hello.txt
    hello zxk!hello git!
	modify//新增修改
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt//红色提示:修改未被追踪
no changes added to commit (use "git add" and/or "git commit -a")//提示可以添加/提交
            
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git commit -m "second modify commit" hello.txt//提交本地库
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
[master 1ae8dd0] second modify commit
 1 file changed, 1 insertion(+)//修改内容:增加一行
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git status//查看状态
On branch master
nothing to commit, working tree clean
说明:本地库若检测到修改一行会显示:先删后加一行
2.4 历史版本
2.4.1 查看历史版本
语法:
git reflog (精简版查看) / git log (详细查看)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git reflog//简略查看
1ae8dd0 (HEAD -> master) HEAD@{0}: commit: second modify commit
da853d2 HEAD@{1}: commit (initial): master first commit
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git log//详细查看
commit 1ae8dd03992d52531d67128a895624b29eefe1c9 (HEAD -> master)
Author: zxk <zxk.com>
Date:   Sun Feb 27 18:51:11 2022 +0800
    second modify commit
commit da853d21478dbad5c49ec1163a461e1ced94b30b
Author: zxk <zxk.com>
Date:   Sun Feb 27 18:37:42 2022 +0800
    master first commit
说明:
git reflog 查看引用日志信息(精简版本号7位)
git log查看详细日志信息(看到版本,提交者,完整版本号)
2.4.2 版本穿梭
语法: git reset --hard 版本号
实操:
--首先查看当前的历史记录,可以看到当前是在1ae8dd0这个版本
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git reflog
1ae8dd0 (HEAD -> master) HEAD@{0}: commit: second modify commit
da853d2 HEAD@{1}: commit (initial): master first commit
--切换到da853d2版本,也就是我们第一次提交的版本
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git reset --hard da853d2
HEAD is now at da853d2 master first commit
--切换完毕之后再查看历史记录,当前成功切换到了da853d2版本
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git reflog
da853d2 (HEAD -> master) HEAD@{0}: reset: moving to da853d2
1ae8dd0 HEAD@{1}: commit: second modify commit
da853d2 (HEAD -> master) HEAD@{2}: commit (initial): master first commit
说明:
- 
版本穿梭,底层其实是移动HEAD指针 
- 
本地库内存里记录的日志和版本信息,调用指针指向不同版本head->master->版本 
- 
版本穿梭具体操作内容:增加版本穿越日志,head指针偏移,文件内容改变 
- 
如何查看当前指针指向: 工作区以git-demo为例–>git-demo/.git/HEAD查看head指向得分支(此时指向master)–>git-demo/.git/refs/heads/master查看该分支当前指向得的版本号 


3 分支操作
分支:在版本控制过程中,同时推进多个任务

同时并行推进多个功能开发,提高开发效率
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
| 命令名称 | 作用 | 
|---|---|
| git branch 分支名 | 创建分支 | 
| git branch -v | 查看分支 | 
| git checkout 分支名 | 切换分支 | 
| git merge 分支名 | 把指定的分支合并到当前分支上 | 
3.1 查看分支
语法: git branch -v
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git branch -v
* master da853d2 master first commit(*代表当前所在的分支)
3.2 创建分支
语法: git branch 分支名
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git branch hot-fix
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git branch -v
  hot-fix da853d2 master first commit//(刚创建的新的分支,并将主分支master的内容复制了一份)
* master  da853d2 master first commit
3.3 切换分支
语法: git checkout 分支名
实操:
先修改master分支的内容并提交–>切换hot-fix分支
结论:master分支的文件内容被修改后提交本地库不会影响hot-fix分支文件的内容
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ cat hello.txt//新增一行文件内容
hello zxk!hello git!
hello master branch!
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git add hello.txt//添加暂存区
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git commit -m "third commit" hello.txt//提交本地库
[master 68f5fe2] third commit
 1 file changed, 1 insertion(+)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git checkout hot-fix//切换hot-fix分支
Switched to branch 'hot-fix'
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (hot-fix)
$ cat hello.txt
hello zxk!hello git!//文件内容仍为创建该分支时的内容
3.4 合并分支
语法: git merge 分支名
实操:(以冲突合并为例)
正常合并为:将高于该分支版本的其他分支合并到该分支,会提升当前分支的版本.
而本例中:master分支的版本已经在hot-fix的之上了,此时修改hot-fix分支文件并提交,即提升hot-fix分支的版本,会发生冲突合并:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (hot-fix)
$ cat hello.txt//修改文件后查看内容
hello zxk!hello git!
hello hot-fix branch!//添加了一行内容
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (hot-fix)
$ git commit -m "hot-fix first commit" hello.txt//提交本地库
[hot-fix 3bf4dba] hot-fix first commit
 1 file changed, 1 insertion(+)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (hot-fix)
$ git checkout master//切回master分支
Switched to branch 'master'
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git merge hot-fix//在master分支上合并热修分支
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt//合并冲突
Automatic merge failed; fix conflicts and then commit the result.
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)//看到分支冲突
$
手动解决:
手动修改内容冲突的文件–>添加暂存区–>提交本地库(不可加文件名)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)
$ vim hello.txt//手动修改
hello zxk!hello git!
<<<<<<< HEAD//删除该行
hello master branch!
=======//删除该行
hello hot-fix branch!
>>>>>>> hot-fix//删除该行
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)
$ cat hello.txt//修改后查看
hello zxk!hello git!
hello master branch!
hello hot-fix branch!
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)
$ git commit -m "merge commit"//不能直接提交本地库,只能先添加暂存区
error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
U       hello.txt
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)
$ git add hello.txt//添加暂存区
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master|MERGING)
$ git commit -m "merge commit"//提交不带文件名
[master 80561d8] merge commit
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)//分支显示正常
总结:
冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
冲突的解决:
1)编辑有冲突的文件,删除特殊符号,决定要使用的内容
2)添加到暂存区
3)执行提交(注意:使用git commit命令时不能带文件名)
3.5 分支图解
- 
创建分支  

- 切换分支

说明:
master、hot-fix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。
HEAD如果指向master,那么我们现在就在master分支上。
HEAD如果执行hotfix,那么我们现在就在hotfix分支上。
所以切换分支的本质就是移动HEAD指针。
5 GitHub操作
GitHub网址:https://github.com/
5.1 创建远程仓库


5.2 远程仓库操作
| 命令名称 | 作用 | 
|---|---|
| git remote -v | 查看当前所有远程地址别名 | 
| git remote add 别名 远程地址 | 起别名 | 
| git push | 推送本地分支上的内容到远程仓库 | 
| git clone | 将远程仓库的内容克隆到本地 | 
| git pull | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 | 
5.2.1 创建远程库别名
语法:
git remote -v (查看当前所有远程地址别名)
git remote add 别名 远程地址 (起名)
实操:(先获取远程库的连接)

Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git remote -v
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git remote add git-demo-remote https://github.com/boneJson/git-demo.git
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git remote -v
git-demo-remote https://github.com/boneJson/git-demo.git (fetch)
git-demo-remote https://github.com/boneJson/git-demo.git (push)
5.2.2 推送
语法: git push 别名 分支 (推送本地分支上的内容到远程仓库)
注意:每次push代码的时候尽量先pull一下,防止push失败,因为本地库和远程库状态可能不对。
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git push git-demo-remote master//推送
//自动弹出登录网页
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ fatal: User canceled device code authentication
git push git-demo-remote master
Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 4 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (12/12), 947 bytes | 947.00 KiB/s, done.
Total 12 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/boneJson/git-demo.git
 * [new branch]      master -> master//成功推送分支

可以看到:master分支(内含4个版本)已经推送到远程库
5.2.3 拉取
准备工作:
在github上修改master分支的文件内容:


可以看到远程库里该文件新增了第四行内容
拉取语法: git pull 远程库地址别名 远程分支名
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ git pull git-demo-remote master//拉取
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 684 bytes | 2.00 KiB/s, done.
From https://github.com/boneJson/git-demo
 * branch            master     -> FETCH_HEAD
   80561d8..514e959  master     -> git-demo-remote/master
Updating 80561d8..514e959
Fast-forward
 hello.txt | 1 +
 1 file changed, 1 insertion(+)
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-Space/git-demo (master)
$ cat hello.txt
hello zxk!hello git!
hello master branch!
hello hot-fix branch!
hello remote new content!//自动同步
说明:拉取动作自动提交修改到本地库–>本地库和远程库同步
5.2.4 克隆
语法: git clone 远程地址 (将远程仓库的内容克隆到本地)
实操:
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-lhc
$ git clone https://github.com/boneJson/git-demo.git
Cloning into 'git-demo'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 15 (delta 1), reused 11 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), done.
Resolving deltas: 100% (1/1), done.
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-lhc
$ cd git-demo/
Administrator@WIN-I0Q1644D4PA MINGW64 /f/Git-lhc/git-demo (master)
$ git remote -v//发现远程库自动取了别名
origin  https://github.com/boneJson/git-demo.git (fetch)
origin  https://github.com/boneJson/git-demo.git (push)
说明:
克隆不需要用户登录–>拿到远程库网站连接,git clone 连接–>克隆(拉取代码–>初始化本地库–>创建远程库别名)
6 团队内协作

- 选择邀请合作者

- 填入想要合作的人

- 复制地址并通过微信钉钉等方式发送给该用户,复制内容如下:

- 受邀请者在这个账号中的地址栏粘贴收到邀请的链接,点击接受邀请。

- 成功之后可以在受邀请者账号上看到git-demo的远程仓库。

- 
受邀请者可以修改内容并push到远程仓库: 本地库修改,添加,提交,推送(没被邀请成为远程库成员,推送会被拒绝) 
- 
回到发帖人的GitHub远程仓库中可以看到,最后一次是受邀请者提交的 
7 跨团队协作

- 将远程仓库的地址复制发给邀请跨团队协作的人,比如东方不败。
- 在东方不败的GitHub账号里的地址栏复制收到的链接,然后点击Fork将项目叉到自己的本地仓库。

叉成功后可以看到当前仓库信息。

- 
东方不败就可以在线编辑叉取过来的文件。编辑完毕后提交 如果是克隆到本地的话,就要将修改先推给远程库 
- 
接下来点击上方的Pull请求,并创建一个新的请求。 



- 回到岳岳GitHub账号可以看到有一个Pull request请求。


进入到聊天室,可以讨论代码相关内容。。。


- 如果代码没有问题,可以点击Merge pull reque合并代码。


8 免密登录
Administrator@WIN-I0Q1644D4PA MINGW64 ~
$ rm -rvf .ssh//删除家目录下该目录.ssh目录
removed '.ssh/id_rsa'
removed '.ssh/id_rsa.pub'
removed '.ssh/known_hosts'
removed '.ssh/known_hosts.old'
removed directory '.ssh'
Administrator@WIN-I0Q1644D4PA MINGW64 ~
$ ssh-keygen -t rsa -C 2642566@qq.com//运行命令生成.ssh秘钥目录[注意:这里-C这个参数是大写的C],注册github的邮箱
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa)://出提示连按三下回车
Created directory '/c/Users/Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:uwbs5jaQ6eJYEY2MRBOG3Dnw9r7pIKzh9BZK/kLbV7U 2642566@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|+B+ .            |
|++o*             |
|. +oo            |
|  ...    .       |
|  .  =  S .      |
|.o o= o. E       |
|=+=o.+...        |
|+O+oo.B ..       |
|oo=+oB.o.        |
+----[SHA256]-----+
Administrator@WIN-I0Q1644D4PA MINGW64 ~
$ cd .ssh//进入.ssh目录
Administrator@WIN-I0Q1644D4PA MINGW64 ~/.ssh
$ ll
total 5
-rw-r--r-- 1 Administrator 197121 2602 Feb 27 22:07 id_rsa
-rw-r--r-- 1 Administrator 197121  571 Feb 27 22:07 id_rsa.pub
Administrator@WIN-I0Q1644D4PA MINGW64 ~/.ssh
$ cat id_rsa.pub//查看id_rsa.pub文件内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDWon8O5XJp3jZXL7De8jmR0ittXV8jcrkI4fd+Nww3SdejqqxIiqhCRk5j10ifBlqmOSMg2JretUMdzOKbdOIuvT3e/oL69H8Le73uknR9X0G+VbmUyNNkevp0nDgscf82kiQUdbRb286/HpQWP1BQl+kt2P925CN6aIk511WT6kh7fxKIEuKJJ6XQxNSn/WSqEZHTuRDUlFjtQncDAAYCbkW4Fj98j/HMKdYfw0GpEvak5f/ACC8WD5Wc4kTnKoYrvhU3Lq/wAXokTjOFMvPbYd7JjgQnyUsl3y1Pl46fEV8JO24ZZvGuUp/WUB81Zs8okPHInznWSTBXaXQPKWccUCV0fEouchCO84eygdNsSVyxlaW+V4txo1UTiZZWHF5iPff8NgTqfHgkOcZ13T7Vipcxc
复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys

接下来再往远程仓库push东西的时候使用SSH连接替代HTTPS连接就不需要登录了。
9 在IDEA中使用Git
9.1 配置忽略文件
忽略工具里的特定文件能够屏蔽IDE工具之间的差异。
- 
创建忽略规则文件git.ignore(前缀名随便起) 这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下 
git.ignore文件内容如下:
# 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
.idea
*.iml
- 在.gitconfig文件中引用忽略配置文件(此文件在Windows的家目录中)
[user]
	name = zxk
	email = zxk.com
[core]
	excludesfile = C:/Users/Administrator/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
9.2 定位Git程序

9.3 初始化本地库

选择要创建Git本地仓库的工程。

9.4 添加到暂存区
右键点击项目选择Git ->Add将项目添加到暂存区。

9.5 提交到本地库


9.6 创建分支


9.7 切换分支

9.8 合并分支(冲突合并)
正常合并:

冲突合并
master分支当前版本是在master first commit版本上更新为master second commit版,
hot-fix分支创建时为master first commit版本,现修改文件内容,提到本地库,更新为hot-fix first commit版本,
此时在master分支上合并hot-fix分支会发生冲突

试图合并:

发生冲突:

手动合并:

结果如下:

9.9 切换版本

10 在IDEA中连接GitHub
10.1 设置GitHub账号

去GitHub上设置token







复制该口令到IDEA中,登录
10.2 分享工程到GitHub中

此时远程库创建别名Remote(本例为idea-remote)

右下角提示:

来到GitHub中发现已经帮我们创建好了git-demo-idea的远程仓库。

10.3 克隆
运行IDEA

GitHub获取要克隆的工程的连接


正常创建新工程即可
10.4 push
右键点击项目,(先添加暂存器,提交本地库)可以将当前分支的内容push到GitHub的远程仓库中。

可以指定远程库连接的别名:

推荐使用ssh免密登录,创建别名如下:(先从GItHub上获取远程库的ssh连接)

10.5 pull
右键点击项目,可以将远程仓库的内容pull到本地仓库。

 
                   
                   
                   
                   
                             
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   2万+
					2万+
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            