赞
踩
目前git是世界最先进的分布式版本控制系统
官方英文网站:https://git-scm.com傻瓜式安装
----桌面右键打开 git bash here
代码如下:(第一行创建第二行验证账户)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ git config --global user.name "houwang"
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ git config --global user.name
houwang
代码如下:
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ git config --global user.email "2336476373@qq.com"
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ git config --global user.email
2336476373@qq.com
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ mkdir pro_git
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ cd pro_git/
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git
$ git init
Initialized empty Git repository in C:/Users/A/Desktop/pro_git/.git/
打开并且勾选显示隐藏的项目里面有.git表示初始化成功(不可删除不可以随意更改)
注:除了这个.git其他都可以叫工作目录
进入到之前创建好的目录
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ cd pro_git/
创建自己的一个demo
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ touch demo.txt
查看文件状态(工作区 注:此时是未暂存)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
demo.txt
nothing added to commit but untracked files present (use "git add" to track)
使用git add命令把demo.txt添加进工作区
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git add demo.txt
(git add .)这个命令可以把所有的工作区文件添加进暂缓区
再使用git status查看当前状态(此时已经成功添加暂存区)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: demo.txt
引号里面的内容是你需要的备注信息(方便后面查找)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git commit -m "demo01"
[master (root-commit) ae1cca3] demo01
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 demo.txt
此时查看状态验证一下
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git status
On branch master
nothing to commit, working tree clean
查看仓库的日志
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git log
commit ae1cca32fb00c04c3b0a32176823cd9714977408 (HEAD -> master)
Author: houwang <2336476373@qq.com>
Date: Thu Jul 14 15:47:37 2022 +0800
demo01
此时我们再编辑刚刚那个仓库的文件
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ vim demo.txt
此时再次查看状态(回到工作区 注:此时是未暂存)
$ 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: demo.txt
no changes added to commit (use "git add" and/or "git commit -a")
重新添加至暂存区
git add . 命令
再次添加到仓库
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git commit -m "demo02"
(此时已经有两条记录)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git log
commit c1c460a60d7134d368509512b42dd2ca4cc31cd1 (HEAD -> master)
Author: houwang <2336476373@qq.com>
Date: Thu Jul 14 16:25:16 2022 +0800
demo02
commit ae1cca32fb00c04c3b0a32176823cd9714977408
Author: houwang <2336476373@qq.com>
Date: Thu Jul 14 15:47:37 2022 +0800
demo01
此时不够直观为了更清楚的看到我们想要的数据
代码展示:
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ git log --all --pretty=oneline --abbrev-commit --graph
* c1c460a (HEAD -> master) demo02
* ae1cca3 demo01
取别名
此时又考虑上面代码太长了难记难敲(将这个长串的命令取别名)
alias git-log=‘git log --all --pretty=oneline --abbrev-commit --graph’
下次直接使用git-log这个我们自定义的命令
版本回退
$ git reset --hard 版本id
版本前进
通过git reflog命令查看前面所有的操作记录
先新建一个文件demo01.java
此时我不想demo01.java这个文件被git管理,我就放在这里
先创建一个.gitingnore文件
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master)
$ touch .gitignore
然后在里面输入不想被git管理的文件名
当然我这里使用的*号匹配符
此时再检验demo01.java不可以被添加到暂存区
$ git branch
新建分支
$ git branch 分支名
查看分支提交了哪些版本(之前自定义的命令)
$ git-log
先把之前创建的文件提交到仓库
此时我们再查看一下日志
此时我们不难发现master分支比dev01多进行了一次提交
所以我们的dev01的分支上应该是没有提交这个.gitignore文件
切换分支
$ git checkout 分支名
继续4.1的内容 (切换到dev01这个分支 不难发现HEAD指向的就是我们当前所在的分支)
而且dev01这个仓库并没有.gitignore这个文件
此时我们再次切换到master这个分支(这个.gitignore这个文件回来了)
创建并切换分支
$ git checkout -b 分支名
git merge 分支名
验证合并分支:1.在dev01下创建1.txt这个文件并且提交到仓库
2.切换到master这个分支上3.合并分支并查看日志(如图所示master多了这个1.txt这个文件)
–之前master是1f0faa1这个id上和8cffdcd上的dev01合并后生成了一个新的id
$ git branch -d 分支名
这个删除会做各种检查
$ git branch -D 分支名
强制删除
1.先删掉之前的dev01和dev2分支
2.新创建一个dev的分支
3.将dev和master两个仓库的1.txt文件修改了不同的内容
4.把dev合并master上(此时因为同一个文件上是不同的内容git不知道保留哪一个所以提示自动合并失败,需要自己手动选择保留的数据)
先注册一个码云(rsa是非对称密钥的一种算法)
注:只需要不断回车其他的内容不管
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ ssh-keygen -t rsa
然后查看密钥
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ cat ~/.ssh/id_rsa.pub
然后把生成的密钥挂载到码云上
然后在本地验证一下是否配置成功(他会提示你是第一次配置,输入一个yes即可)
这是成功的状态//
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ ssh -T git@gitee.com
The authenticity of host 'gitee.com (212.64.63.190)' can't be established.
ED25519 key fingerprint is SHA256:+ULzij2u99B9eWYFTw1Q4ErYG/aepHLbu96PAUCoV88.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com' (ED25519) to the list of known hosts.
Hi 重庆李豪! You've successfully authenticated, but GITEE.COM does not provide shell access.
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$
先告诉你的本地仓库对应的远程仓库是哪一个
git remote add 自定义仓库名 仓库SSH地址
没报错说明添加成功
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ git remote add origin git@gitee.com:chongqinghouwang/git_test.git
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$
验证一下
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ git remote
origin
将本地的代码推送上去(这里是将master这个分支推上去)
注 本地仓库名:远程仓库自定义名字
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (master|MERGING)
$ git push origin master
验证一下此时云端有代码了
此时我们再将dev推送上去
注 本地仓库名:远程仓库自定义名字
查看绑定关系
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev)
$ git branch -vv
* dev c941690 1.txt
master c941690 1.txt
添加绑定关系并且再次查看
git push --set-upstream origin 本地:远程名
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev) $ git push --set-upstream origin dev:dev01 Enumerating objects: 7, done. Counting objects: 100% (7/7), done. Delta compression using up to 16 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 319 bytes | 319.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 remote: Powered by GITEE.COM [GNK-6.3] To gitee.com:chongqinghouwang/git_test.git 6c083ad..c941690 dev -> dev01 branch 'dev' set up to track 'origin/dev01'. A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev) $ git branch -vv * dev c941690 [origin/dev01] 1.txt master c941690 1.txt
重新推送
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev)
$ git push
就不多说了报了一大串的错看不懂
因为本地和远端的分支名不一致导致推送失败,更改本地的分支名后重新推送即可
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev)
$ git branch -m dev01
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev01)
$ git push
Everything up-to-date
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/pro_git (dev01)
$ git branch -vv
* dev01 c941690 [origin/dev01] 1.txt
master c941690 [origin/master] 1.txt
因为只有一台电脑原因但不影响克隆,桌面上新开一个命令行窗口
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop
$ git clone 你的SSH地址 新创建用来保存的文件名
左面的命令行是之前的,右边的是新克隆的
模拟一下左边更新,右边需要同步(左边新建了一个demo02.txt的文件)
抓取命令
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/hello (master)
$ git fetch
我们新克隆的master还在上一个版本上,我们和远端的提交合并到一起(使用之前的合并命令)
拉取命令=拉取+合并(git merge 分支名)
A@LAPTOP-I3BL4SR1 MINGW64 ~/Desktop/hello (master)
$ git pull
5.5解决远端合并冲突
首先一端修改并且提交
然后另一端修改并且拉取+合并
解决方案呢跟之前本地那个执行是一样的
只需要自行修改冲突的文件后重新提交仓库既可合并
先在idea里面配置好git的安装路径(点击test会出现git的版本号说明没有问题)
在码云中新建一个远程仓库
然后在返回IDEA新建仓库目录
选择我们的项目
有个小勾的图标单击后勾选我们想提交的文件
左下角的git小图标可以查看我们提交到哪儿了
推送到远端仓库
然后url粘贴我们码云的SSH地址
再随手一个push就可以完美的推送到我们的云端
更新数据:
随意修改一行代码后进行再次提交然后push一下
验证一下
克隆数据:
注意:从远端直接获取会替换掉你当前的内容修改
例如:以上就是今天要学的内容,本文仅仅简单介绍了git的使用,目前git是世界最先进的分布式版本控制系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。