昆明市住房和城乡建设局网站上看的,wordpress加载相册慢,甘肃省建设信息平台,看颜色应该搜索哪些词汇文章目录一、Git命令1.2 设计用户签名1.3 初始化本地库1.4 查看本地库状态1.5 添加至暂存区1.6 从暂存区删除1.7 将暂存区的文件提交到本地库1.8 查看版本信息二、Git分支2.1 查看分支2.2 创建分支2.3 切换分支2.4 合并分支三、GitHub3.1 代码克隆clone3.2 给库取别名3.3 推送本…
文章目录一、Git命令1.2 设计用户签名1.3 初始化本地库1.4 查看本地库状态1.5 添加至暂存区1.6 从暂存区删除1.7 将暂存区的文件提交到本地库1.8 查看版本信息二、Git分支2.1 查看分支2.2 创建分支2.3 切换分支2.4 合并分支三、GitHub3.1 代码克隆clone3.2 给库取别名3.3 推送本地分支到远程仓库3.4 拉取远程库3.5 邀请加入团队3.6 idea集成GitHub3.6.1 配置忽略文件3.6.2 定位 Git 程序3.6.3 集成 Git3.6.4 切换版本3.6.5 创建分支3.6.6 切换分支3.6.7 合并分支3.6.8 解决冲突一、Git命令
如果出现了下面的报错是因为复制粘贴时 git 前面不小心多加了个空格算了个字符就会报错删掉即可解决
bash: $\302\203git: command not found基于开发命令中常用的git命令
1.2 设计用户签名
-- git config --global user.name 用户名
git config --global user.name ffideal
-- git config --global user.email 邮箱
git config --global user.email 1359975xxxqq.com1.3 初始化本地库
git init1.4 查看本地库状态
哪个分支、哪些文件、只要库被修改且未被追踪工作区
git status测试结果
On branch master
Your branch is up to date with origin/master.Changes to be committed:
.... 修改一个文件之后
$ 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.javano changes added to commit (use git add and/or git commit -a)1.5 添加至暂存区
-- git add 文件名
git add hello.java1.6 从暂存区删除
git rm --cached hello.java注意工作区中 hello.java 还在的
1.7 将暂存区的文件提交到本地库
-- git commit -m 日志信息 文件名
git commit -m 我的第一个提交的java文件 hello.java测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git commit -m 我的第一个提交的java文件 hello.java
[master (root-commit) cbe2bf8] 我的第一个提交的java文件1 file changed, 0 insertions(), 0 deletions(-)create mode 100644 hello.java1.8 查看版本信息
-- 查看版本日志信息
git log
-- 查看版本详细日志信息包括版本号、提交者、日期、日志信息
git reflog测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$git creflog
cbe2bf8 (HEAD - master) HEAD{0}: commit (initial): 我的第一个提交的java文件dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git log
commit cbe2bf893a34fa9790374af38260b6bcf272137f (HEAD - master) -- 版本号
Author: FFIDEAL xxxxxqq.com -- 提交者
Date: Fri Oct 14 19:29:18 2022 0800 --日期我的第一个提交的java文件 -- 日志信息⑧ 版本穿梭切换不同的版本
git reset --hard cbe2bf893a34fa9790374af38260b6bcf272137f测试结果
HEAD is now at cbe2bf8 我的第一个提交的java文件这命令可以让指针指向相应的软件版本
比如提交修改后的 hello.java 文件
$ git commit -m 修改后的hello.java hello.java
[master 0289986] 修改后的hello.java1 file changed, 1 insertion()查看日志可以发现版本号是不一样的。这些版本分别是0289986cbe2bf8
$ git reflog
0289986 (HEAD - master) HEAD{0}: commit: 修改后的hello.java
cbe2bf8 HEAD{1}: reset: moving to cbe2bf893a34fa9790374af38260b6bcf272137f
cbe2bf8 HEAD{2}: commit (initial): 我的第一个提交的java文件此时我们发现head指针指向0289986现在我要让他指向cbe2bf8就可以使用以下命令
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$git reset --hard cbe2bf8
HEAD is now at cbe2bf8 我的第一个提交的java文件
-- 测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git reflog
cbe2bf8 (HEAD - master) HEAD{0}: reset: moving to cbe2bf8 -- 指向了cbe2bf8
0289986 HEAD{1}: commit: 修改后的hello.java
cbe2bf8 (HEAD - master) HEAD{2}: reset: moving to cbe2bf893a34fa9790374af38260b6bcf272137f
cbe2bf8 (HEAD - master) HEAD{3}: commit (initial): 我的第一个提交的java文件此外在本地可以进入工作区
方案一进入 .git 文件夹在 .git/HEAD 记录了谁提交
方法二进入 .git/refs/heads/main(用户名) 记录了版本号
在git中当前版本是用HEAD版本来标识的前一个版本使用 HEAD^ 来表示上上个版本使用 HEAD^^ 来表示。那么前100个版本如何表示呢我们不可能写100个 ^ 我们有简便写法那就是 HEAD^100。用这种简便写法上上个版本可以这样表示HEAD^2
二、Git分支
分支特性分支创建、分支转换、分支合并、代码合并冲突解决
一个分支就是一个副本
2.1 查看分支
git branch -v测试结果
$ git branch -v
* master cbe2bf8 我的第一个提交的java文件2.2 创建分支
git branch newBranch测试结果
$ git branch newBranchdellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git branch -v
* master cbe2bf8 我的第一个提交的java文件newBranch cbe2bf8 我的第一个提交的java文件2.3 切换分支
git checkout newBranch测试结果
git checkout newBranch
Switched to branch newBranchdellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch) -- 测试结果已经切换至newBranch2.4 合并分支
-- git merge 分支名
git merge newBranch测试流程和结果
-- 1newBranch 分支下修改了hello.java
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch)
$ cat hello.java
222 newBranch
111dellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch)
$ git add .dellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch)
$ git commit -m 测试冲突newBranch修改了hello.java文件 hello.java
[newBranch ccb3ef2] 测试冲突newBranch修改了hello.java文件1 file changed, 1 insertion(), 1 deletion(-)dellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch)
$ git checkout master
Switched to branch master-- master 分支下修改了hello.java
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ cat hello.java
222
111 masterdellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git add .dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git commit -m 测试冲突master修改了hello.java文件 hello.java
[master 5ff3ad3] 测试冲突master修改了hello.java文件1 file changed, 1 insertion(), 1 deletion(-)dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git merge newBranch
Auto-merging hello.java
CONFLICT (content): Merge conflict in hello.java --出现了合并冲突
Automatic merge failed; fix conflicts and then commit the result.
查看 hello.java 文件文件内容如下 HEAD
222
111 master222 newBranch
111newBranch我们如下内容只需要把其他内容删掉
222 newBranch
111 masterHEAD -- 删除
222 -- 删除
111 master -- 保留-- 删除
222 newBranch -- 移动位置
111 -- 删除newBranch -- 删除完成后提交注意这里 git commit -m 合并了master和newBranch冲突之后最终得到的hello.java文件 是不能带文件名的
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master|MERGING)
$ git add .-- 这里不能带文件名
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master|MERGING)
$ git commit -m 合并了master和newBranch冲突之后最终得到的hello.java文件
[master 3751ec1] 合并了master和newBranch冲突之后最终得到的hello.java文件
查看提交后的 hello.java 的内容。但是由于是 master 合并 newBranch 分支的内容所以在 master 分支下可以看到合并后的内容但是在 newBranch 分支并没有被修改。这就是为什么在团队合作中push 提交到远程库之前要 pull 一下远程库的内容以保持内容的一致性
dellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ cat hello.java
222 newBranch
111 masterdellDESKTOP-B06U8EQ MINGW64 /e/github/git (master)
$ git checkout newBranch
Switched to branch newBranchdellDESKTOP-B06U8EQ MINGW64 /e/github/git (newBranch)
$ cat hello.java
222 newBranch
111三、GitHub
在 github 上创建一个远程库我的远程库名称为 git_test
然后把该库 clone 到本地
3.1 代码克隆clone
git clone gitgithub.com:ffideal/git_test.git3.2 给库取别名
-- git remote add 别名 远程库
git remote add name gitgithub.com:ffideal/git_test.git测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (master)
$ git remote -v
name gitgithub.com:ffideal/git_test.git (fetch)
name gitgithub.com:ffideal/git_test.git (push)
origin gitgithub.com:ffideal/git_test.git (fetch)
origin gitgithub.com:ffideal/git_test.git (push)删除别名
-- git remote remove 别名
git remote remove gitit_nickname测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (master)
$ git remote -v
git_test git (fetch)
git_test git (push)
gitit_nickname gitgithub.com:ffideal/git_test.git (fetch) -- 删除目标
gitit_nickname gitgithub.com:ffideal/git_test.git (push)
name gitgithub.com:ffideal/git_test.git (fetch)
name gitgithub.com:ffideal/git_test.git (push)
origin gitgithub.com:ffideal/git_test.git (fetch)
origin gitgithub.com:ffideal/git_test.git (push)dellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (master)
git remote remove gitit_nicknamedellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (master) -- 已被删除
$ git remote -v
git_test git (fetch)
git_test git (push)
name gitgithub.com:ffideal/git_test.git (fetch)
name gitgithub.com:ffideal/git_test.git (push)
origin gitgithub.com:ffideal/git_test.git (fetch)
origin gitgithub.com:ffideal/git_test.git (push)
3.3 推送本地分支到远程仓库
-- git push 别名 分支
git push origin main测试结果注意如果此时该分支不存在会被创建分支
dellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (main)
$ git push origin main
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 560 bytes | 280.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for main on GitHub by visiting:
remote: https://github.com/ffideal/git_test/pull/new/main
remote:
To github.com:ffideal/git_test.git* [new branch] main - main3.4 拉取远程库
-- git pull 远程库地址or别名 远程分支名
git pull origin master测试结果
dellDESKTOP-B06U8EQ MINGW64 /e/github/git/git_test (master)
$ git pull origin master
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
Unpacking objects: 100% (3/3), 1.41 KiB | 479.00 KiB/s, done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
From github.com:ffideal/git_test* branch master - FETCH_HEADbde7239..9edde2f master - origin/master
Updating cd10529..9edde2f
Fast-forward...263\250\350\247\243\350\257\246\351\233\206.md | 80 1 file changed, 80 insertions()create mode 100644 \346\263\250\350\247\243\350\257\246\351\233\206.md
查看文件
$ dir
hello.java main.txt 注解详集.md3.5 邀请加入团队
① 选择合作者进入项目 → settings → Manager access → Invite a callaborator ② 填入想要合作的人
③ 复制地址并通过微信等方式发送给该用户
④ 点击接收邀请 Accept invitation
⑤ 成名后可以在该合作者账号上看到远程仓库
⑥ 可以操作该库
3.6 idea集成GitHub
3.6.1 配置忽略文件
就是在git目录下创建一个文件 xx.ignore 建议是 git.ignore
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/### VS Code ###
.vscode/# compiled class file
*.class# Log file
*.log# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar3.6.2 定位 Git 程序
settings → Version Control → Git → 选择自己的 git.exe 安装目录 → test 3.6.3 集成 Git
VCS → Import into Version Control → Create Git Repository → 选择项目目录初始化本地库右击点击项目选择Git → commit directory → 选择删文件以及在commit message 中填写描述 → commit 3.6.4 切换版本
在idea的左下角点击version control然后点击log 查看版本 → 右击选择要切换的版本然后在菜单里点击Checkout Revision
3.6.5 创建分支
Git → Repository → new Branch → 填写分支名称 → 填写之后在 idea 的右下角看到我们新建的分支说明创建成功并已经切换到该分支了 3.6.6 切换分支
在 idea 窗口的右下角master → Checkout → 选择分支xutao → 在右下角看到了xutao即成功 3.6.7 合并分支
Gitmaster → Merge Selected into Current → 选择要合并的分支 3.6.8 解决冲突
若出现冲突我们栈在master分支上合并其他分支出现了文件的不同就会发生冲突。点击 conflicts 框中的 Merge 按钮手动合并