自建服务器网站备案,深圳筑造建设有限公司网站,帝国网站数据库配置文件,信息化建设 网站作用文章目录一、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 按钮手动合并