二手交易网网站建设目标,百度指数功能模块,全球互联网十大网站,wordpress textarea文章目录 1、Git本地库命令1.1、初始化本地库1.2、设置用户签名1.3、查看本地库状态1.4、将工作区的修改添加到暂存区1.5、将暂存区的修改提交到本地库1.6、历史版本1.7、取消commit1.8、取消暂存文件 2、分支操作2.1、查看分支2.2、创建分支2.3、分支合并时产生冲突 3、Gitee远… 文章目录 1、Git本地库命令1.1、初始化本地库1.2、设置用户签名1.3、查看本地库状态1.4、将工作区的修改添加到暂存区1.5、将暂存区的修改提交到本地库1.6、历史版本1.7、取消commit1.8、取消暂存文件 2、分支操作2.1、查看分支2.2、创建分支2.3、分支合并时产生冲突 3、Gitee远程库实操3.1、克隆远程仓库3.2、创建远程仓库别名3.3、推送本地分支上的内容到远程仓库3.4、拉取远程库内容 4、跨团队协作-Fork应用5、SSH免密登录6、IDEA中使用Git本地仓库6.1、Git忽略文件6.2、定位Git程序6.3 初始化本地库6.4 添加到暂存区6.5 提交到本地库6.6 创建分支6.7 切换分支6.8 合并分支6.9 切换版本 7、IDEA中连接Gitee远程仓库7.1 设置Gitee账号7.2 分享工程到Gitee7.3 clone7.4 push7.5 pull Git学习链接 1、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 版本号版本穿梭
1.1、初始化本地库
基本语法
git init案例实操 初始化效果会生成.git文件夹 1.2、设置用户签名 签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到以此确认本次提交是谁做。 基本语法
git config --global user.name 用户名
git config --global user.email 邮箱案例实操
git config --global user.name ZHANG Yaning
git config --global user.email yaning.zhangsunmi.com#查看签名信息
git config user.namegit config user.email
#如果你想查看当前用户的所有Git配置信息可以使用以下命令
git config --list
#如果你想查看某个特定仓库的用户配置信息可以在上述命令后加上--local参数如
git config --local user.name
git config --local user.email
git config --local --list也可以在文件中查看
cat ~/.gitconfig1.3、查看本地库状态
基本语法
git status案例实操 工作区没有任何文件 检测到未追踪的文件
新建一个hello.txt后查看 检测到有新建的文件添加到了暂存区
执行
git add hello.txt提交完成后查看状态
git commit -m 测试检测到工作区有文件被修改
修改hello.txt 工作区的修改添加到了暂存区 产生冲突在后面讲分支操作后演示
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|**MERGING**)
$ git status
On branch master
You have unmerged paths.(fix conflicts and run git commit)(use git merge --abort to abort the merge)Unmerged paths:(use git add file... to mark resolution)both modified: hello.txtno changes added to commit (use git add and/or git commit -a)1.4、将工作区的修改添加到暂存区
基本语法
git add 文件名1.5、将暂存区的修改提交到本地库
基本语法
git commit -m 日志信息 文件名$ git commit -m my 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) 86366fa] my first commit1 file changed, 16 insertions()create mode 100644 hello.txt1.6、历史版本
查看历史版本
基本语法
git reflog案例实操
修改两次文件内容分别add、commit
版本穿梭
基本语法
git reset --hard 版本号案例实操
1.7、取消commit
在 git 中提交后如何撤销在使用 git 协同工作有时候我们提交了一次修改发现了错误想要撤销该次提交该怎么做呢git 中的每次提交(commit) 都相当于是仓库的一个快照另外在 git 中有一个名为 HEAD 的引用变量–使用 git log 查看日志的时候就能看到。这个 HEAD 用于指向你正在工作的分支中的最近提交。 基本命令 在 git 中撤消提交的最简单方法是使用 还原提交revert选项 git revert这会撤销最近的提交。 包括使用 revert 在内有两种方法可以撤销提交操作 git revert: 恢复 git 仓库的先前状态并将更改反映在 git 日志中git reset删除上次提交。如果想要彻底恢复错误的提交且不保留日志可使用 git reset。 案例实操1还原提交 $ git status
On branch master
nothing to commit, working tree clean
使用 cat 命令来看一下这个文件的内容
$ cat hello.txt
123
456
然后添加一行“zyn”使用 git add . 将其添加到暂存区再然后做一次提交
$ vim hello.txt$ 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$ git commit -m test revert
[master 2e99fb8] test revert1 file changed, 1 insertion()$ git status
On branch master
nothing to commit, working tree clean$ cat hello.txt
123
456
zyn系统返回给我一个唯一标识master 2e99fb8。现在运行 git revert 并使用该唯一标识来恢复到上一次提交的状态
$ git revert master 2e99fb8
[master 6e2ec95] Revert test revert1 file changed, 1 deletion(-)$ cat hello.txt
123
456然后来看一下 git 日志检查撤销操作有没有反映在日志中。
$ git log
commit 6e2ec954f69ca731a9121182afeca52eaf7213a5 (HEAD - master)
Author: zyn zynqq.com
Date: Fri Oct 20 22:56:27 2023 0800Revert test revertThis reverts commit 2e99fb876b98962cff05715c69f8ee11403da5d0.commit 2e99fb876b98962cff05715c69f8ee11403da5d0
Author: zyn zynqq.com
Date: Fri Oct 20 22:55:54 2023 0800test revertcommit 14cf74cf24898c8b5852d7fd6e639290ad30575b
Author: zyn zynqq.com
Date: Fri Oct 20 22:55:03 2023 0800init实操案例2删除提交 $ cat hello.txt
123
456首先更改一个文件
$ vim hello.txt$ cat hello.txt
123
456
zhangzhangzhang
然后提交
$ 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$ git commit -m test reset
[master 15ef403] test reset1 file changed, 1 insertion()然后使用 git reset 命令来撤销这次提交
$ git reset --soft HEAD~1接下来看下 git 日志上次提交提交文本 test reset已经不见了。
由此可见这个提交被完全被删除了因为我将 HEAD 指向移动到了最后一个引用用HEAD~1表示。
$ git log
commit 3eda403b2f2d650acec8c8234281918966b74b1e (HEAD - master)
Author: zyn zynqq.com
Date: Fri Oct 20 23:21:00 2023 0800init$ git reflog
3eda403 (HEAD - master) HEAD{0}: reset: moving to HEAD~1
15ef403 HEAD{1}: commit: test reset
3eda403 (HEAD - master) HEAD{2}: commit (initial): init这个删除操作并没有影响到我们的工作文件.可通过git restore 恢复到修改前的内容
--soft 标志表示在运行 git reset 的时候修改的是 git 保存的日志。
$ cat hello.txt
123
456
zhangzhangzhang$ git status
On branch master
Changes to be committed:(use git restore --staged file... to unstage)modified: hello.txt如果想要将 git 存储库中的内容恢复到先前的状态可使用 --hard 标志不过要谨慎使用确保需要的文件做好备份。
1.8、取消暂存文件
在使用Git进行版本控制时我们经常需要将文件添加到暂存区stage以便提交更改。但有时候我们可能会错误地将文件添加到暂存区或者改变了对文件的修改意图这时候我们需要取消暂存并将文件从暂存区移除。本文将详细介绍如何在Git中取消暂存文件的方法以帮助您管理版本控制过程中的文件更改。 取消暂存单个文件 如果只需要取消暂存单个文件可以使用以下命令 git restore --staged 文件名替换文件名为要取消暂存的文件名。执行该命令后Git将会将文件从暂存区移除但保留对文件的修改。 取消暂存多个文件 如果需要取消暂存多个文件可以使用以下命令 git restore --staged 文件1 文件2 ...替换文件1 文件2 …为要取消暂存的文件列表用空格分隔每个文件名。 取消所有暂存文件 如果需要一次性取消所有暂存文件可以使用以下命令 git restore --staged .执行该命令后Git将会将所有暂存文件移除但保留对文件的修改。 取消暂存的同时撤销修改 有时候我们希望取消暂存的同时也撤销对文件的修改将文件恢复到上一次提交的状态。可以使用以下命令 git restore 文件名替换文件名为要取消暂存和撤销修改的文件名。执行该命令后Git将会将文件从暂存区移除并且撤销对文件的修改。 撤销所有修改 如果希望一次性撤销所有暂存文件的修改并将它们恢复到上一次提交的状态可以使用以下命令 git restore .执行该命令后Git将会将所有暂存文件移除并且撤销对这些文件的修改。
总结
取消暂存文件后可以再次使用git status命令确认文件的状态是否已正确更新。取消暂存的文件应该不再显示在暂存区中且状态应该被修改为未暂存的更改。
在Git中取消暂存文件是一个常见的操作用于纠正错误的暂存或更改修改意图。通过使用git restore命令我们可以轻松地取消暂存单个或多个文件甚至可以撤销对文件的修改。
通过熟练掌握这些命令可以更好地管理Git中的文件更改和版本控制。在取消暂存文件时请确保了解要取消暂存的文件和其相关修改的影响并在确认操作之前进行适当的代码审查。
2、分支操作
在版本控制过程中同时推进多个任务 分支的好处
同时并行推进多个功能开发提高开发效率
各个分支在开发过程中如果某一个分支开发失败不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支操作常用命令
命令名称作用git branch 分支名创建分支git branch -v查看分支git checkout 分支名切换分支git merge 分支名把指定的分支合并到当前分支上
2.1、查看分支
基本语法
git branch -v*代表当前所在的分区
2.2、创建分支
基本语法
git branch 分支名案例实操
git branch hot-fix
git branch -v2.3、分支合并时产生冲突
在两个不同分支分别做不同修改操作
在master分支修改内容
--在maste分支上做修改
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ vim hello.txt
--提交到暂存区
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git add hello.txt
--提交到本地库
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git commit -m forth main
[master e427b0c] forth main1 file changed, 1 insertion()
--查看分支
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git branch -vhot-fix 2b5e6fe first modified
* master e427b0c forth main
--查看master分支上的文件内容
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ cat hello.txt
123
4567切换分支到hot-fix分支并进行修改
基本语法
git checkout 分支名称案例实操
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git checkout hot-fix
Switched to branch hot-fixSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git branch -v
* hot-fix 2b5e6fe first modifiedmaster e427b0c forth mainSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ cat hello.txt
123SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ vim hello.txtSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git add hello.txtSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git commit -m forth hot-fix
[hot-fix bca0a5f] forth hot-fix1 file changed, 1 insertion()SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ cat hello.txt
123
4568合并分支
基本语法
git merge 分支名案例实操
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (hot-fix)
$ git checkout master
Switched to branch masterSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git merge hot-fix
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt
Automatic merge failed; fix conflicts and then commit the result.SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git status
On branch master
You have unmerged paths.(fix conflicts and run git commit)(use git merge --abort to abort the merge)Unmerged paths:(use git add file... to mark resolution)both modified: hello.txtno changes added to commit (use git add and/or git commit -a)SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ cat hello.txt
123HEAD
45674568hot-fixSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ vim hello.txtSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git add hello.txtSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master|MERGING)
$ git commit -m merge hot-fix
[master 290d289] merge hot-fix
--发现后面MERGING消失变为正常
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ cat hello.txt
123
4567
4568冲突产生的原因
如果一个分支的内容是在另一个分支创建时生成的那么在只修改一个分支相同文件相同位置的内容情况下合并时将不会产出冲突。因为Git会自动合并简单的冲突。
合并分支时两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
冲突的解决
1编辑有冲突的文件删除特殊符号决定要使用的内容
特殊符号 HEAD hot-fix
2添加到暂存区
3执行提交注意使用git commit命令时不能带文件名 master、hot-fix其实都是指向具体版本记录的指针。当前所在的分支其实是由HEAD决定的。所以创建分支的本质就是多创建一个指针。 HEAD如果指向master那么我们现在就在master分支上。 HEAD如果执行hotfix那么我们现在就在hotfix分支上。 所以切换分支的本质就是移动HEAD指针。 3、Gitee远程库实操
在Gitee创建Gitee-Test仓库
远程仓库操作基本命令
命令名称作用git remote -v查看当前所有远程地址别名git remote add 别名 远程地址起别名git push 别名 分支推送本地分支上的内容到远程仓库git clone 远程地址将远程仓库的内容克隆到本地git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
3.1、克隆远程仓库
基本语法
git clone 远程地址案例实操
git clone https://gitee.com/zhangyaning666/gitee-test.gitclone会做如下操作
1、拉取代码。2、初始化本地仓库。3、创建别名
3.2、创建远程仓库别名
基本语法
#查看当前所有远程地址别名
git remote -v
#为远程仓库创建别名
git remote add 别名 远程地址案例实操
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote -vSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote add ori https://gitee.com/zhangyaning666/gitee-test.gitSM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹 (master)
$ git remote -v
ori https://gitee.com/zhangyaning666/gitee-test.git (fetch)
ori https://gitee.com/zhangyaning666/gitee-test.git (push)3.3、推送本地分支上的内容到远程仓库
基本语法
git push 别名 分支案例实操
SM2881SMSHA1PF3DZPEC MINGW64 /f/测试文件夹/gitee-test (master)
$ git push ori
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zhangyaning666/gitee-test.git5ab2247..1df7b38 master - master在git中“push -f”的意思是“强制更新”是“push -force”的缩写该命令的作用是将自己本地仓库的代码直接推送至仓库完全以该命令提交为准之前提交都会被覆盖。远程仓库中之前的版本记录也会被清除慎用。 3.4、拉取远程库内容
基本语法
git pull 远程库地址别名 远程分支名案例实操
git pull ori master4、跨团队协作-Fork应用
1将远程仓库的地址复制发给邀请跨团队协作的人。
2在zhang real的Gitee账号里的地址栏复制收到的链接然后点击Fork将项目叉到自己的本地仓库。
fork成功后可以看到当前仓库信息。 3zhang real就可以在线编辑叉取过来的文件。 4编辑完毕后填写描述信息并点击左下角绿色按钮提交。 5接下来点击上方的Pull请求并创建一个新的请求。 6回到“时光”Gitee账号可以看到有一个Pull request请求。
进入到聊天室可以讨论代码相关内容。。。
7如果代码没有问题可以合并代码。 5、SSH免密登录
我们可以看到远程仓库中还有一个SSH的地址因此我们也可以使用SSH进行访问。
具体操作如下 $ git initInitialized empty Git repository in F:/笔记/14.Git/1.笔记/Git-SSH/.git/$ git config user.name
zyn$ git config user.email
zynqq.com$ cd .git/
HEAD description info/ refs/
config hooks/ objects/--进入当前用户的家目录
$ cd$ pwd
/c/Users/10420
--删除.ssh目录
$ rm -rvf .ssh
removed .ssh/id_rsa
removed .ssh/id_rsa.pub
removed .ssh/known_hosts
removed .ssh/known_hosts.old
removed directory .ssh--运行命令生成.ssh秘钥目录[注意这里-C这个参数是大写的C]
$ ssh-keygen -t rsa -C zhangyaning666
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/10420/.ssh/id_rsa):
Created directory /c/Users/10420/.ssh.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/10420/.ssh/id_rsa
Your public key has been saved in /c/Users/10420/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:BBb98gotyTriimE4bkBRtYe6esC4blmiWjRaeNZWxY zhangyaning666
The keys randomart image is:
---[RSA 3072]----
| ....o |
| . .o.. |
| . o ... |
| . .. ... . |
| . . oEo |
|B . ... |
|Bo*.o..oo. |
|*Booo . |
|O*o.o.. |
----[SHA256]-----
--进入.ssh目录查看文件列表
$ cd .ssh$ ll -a
total 37
drwxr-xr-x 1 10420 197609 0 Oct 19 22:17 ./
drwxr-xr-x 1 10420 197609 0 Oct 19 22:17 ../
-rw-r--r-- 1 10420 197609 2602 Oct 19 22:17 id_rsa
-rw-r--r-- 1 10420 197609 568 Oct 19 22:17 id_rsa.pub
--查看id_rsa.pub文件内容
$ cat id_rsa.pub
ssh-rsa *****
复制id_rsa.pub文件内容登录Gitee点击用户头像→设置→SSH公钥 接下来再往远程仓库push东西的时候使用SSH连接就不需要登录了。
6、IDEA中使用Git本地仓库
6.1、Git忽略文件
1Eclipse特定文件 2IDEA特定文件 3Maven工程的target目录 问题1:为什么要忽略他们
与项目的实际功能无关不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。 问题2怎么忽略
创建忽略规则文件xxxx.ignore前缀名随便起 这个文件的存放位置原则上在哪里都可以为了便于让~/.gitconfig文件引用建议也放在用户家目录下
xxxx.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 zynemail zynqq.com
[core]excludesfile C:/Users/10420/hh.ignore
注意这里要使用“正斜线/”不要使用“反斜线\”6.2、定位Git程序 6.3 初始化本地库 选择要创建Git本地仓库的工程。 6.4 添加到暂存区
右键点击项目选择Git -Add将项目添加到暂存区。 6.5 提交到本地库 6.6 创建分支 6.7 切换分支
在IDEA窗口的右下角切换到master分支。 6.8 合并分支
在IDEA窗口的右下角将hot-fix分支合并到当前master分支。 6.9 切换版本
在IDEA的左下角点击Version Control然后点击Log查看版本 右键选择要切换的版本然后在菜单里点击Checkout Revision。 7、IDEA中连接Gitee远程仓库
7.1 设置Gitee账号
安装Gitee插件 点击登录。 7.2 分享工程到Gitee 来到Gitee中发现已经帮我们创建好了gitTest的远程仓库。 7.3 clone 为clone下来的项目创建一个工程一路Next。 7.4 push
右键点击项目可以将当前分支的内容push到Gitee的远程仓库中。 7.5 pull
右键点击项目可以将远程仓库的内容pull到本地仓库。 Git学习链接
Git 大全 - Gitee