提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Git是一个开源的分布式版本控制系统,可以有效高速的处理从很小到很大的项目版本管理。
历史版本→本地库
↑
git commmit
↑
暂时储存→暂存区
↑
git add
↑
写代码 →工作区
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
GitLab
GitHub(外国网站)
Gitee 码云(国内网站)
命令名称 |
作用 |
---|---|
git config --global user.name 用户名 |
设置用户签名 |
git config --global user.email 邮箱 |
设置用户签名 |
git config --global core.quotepath false |
设置显示中文文件 |
git init |
初始化本地库 |
git status |
查看本地库状态 |
git add 文件名 |
添加到暂存区 |
git commit -m "日志信息" 文件名 |
提交到本地库 |
git reflog 或 git log(更详细) |
查看历史记录 |
git reset --hard 版本号 |
版本穿梭 |
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git --version //查看版本号
git version 2.35.1.windows.2
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.name tang //设置用户签名
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global user.email 2834323411@qq.com //设置用户签名
admin@DESKTOP-E8GCEEI MINGW64 ~
$ git config --global core.quotepath false //设置显示中文文件
注意:这里设置用户签名和将来登录GitHub(或其他代码托管中心)的账号没有任何关系
在C:\Users\admin里面找到 .gitconfig 文件并打开
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo
$ git init
初始化之后会自动在当前文件夹下生成一个隐藏文件 .git
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git status
On branch master
nothing to commit, working tree clean
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git add hello.txt
git commit -m "日志信息" 文件名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master|MERGING)
$ git commit -m "merge"
[master f556a5b] merge
git reflog
查看版本信息
git log
查看版本详细信息
admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git reflog
3f47d64 (HEAD -> master, origin/master, git/master) HEAD@{0}: commit: git笔记1.1
29410ad HEAD@{1}: commit: git笔记1.0
f73d1ab HEAD@{2}: commit: 完善版
df5acc9 HEAD@{3}: reset: moving to df5acc9
20952cf HEAD@{4}: reset: moving to 2095
df5acc9 HEAD@{5}: commit: git笔记1.0
d930448 HEAD@{6}: commit: 进行了第四次修改
24de0b6 HEAD@{7}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{8}: commit: 进行了第二次修改
20952cf HEAD@{9}: commit (initial): 进行了一次修改
admin@DESKTOP-1SHNHA2 MINGW64 /e/Git (master)
$ git log
commit 3f47d64f23916a165bc218a4bf47ccbe5540bcf5 (HEAD -> master, origin/master, git/master)
Author: tang <2834323411@qq.com>
Date: Sat Sep 3 13:10:14 2022 +0800
git笔记1.1
commit 29410ad24169242a841511e3299560203b4cccec
Author: tang <2834323411@qq.com>
Date: Sat Sep 3 12:47:05 2022 +0800
git笔记1.0
git reset --hard 版本号
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reflog
bf3c4a7 (HEAD -> master) HEAD@{0}: commit: git笔记1.0
f73d1ab HEAD@{1}: reset: moving to HEAD^
29410ad HEAD@{2}: reset: moving to 29410ad
3f47d64 (origin/master, git/master) HEAD@{3}: commit: 唐辉阳的git笔记
29410ad HEAD@{4}: commit: git笔记
f73d1ab HEAD@{5}: commit: 完善版
df5acc9 HEAD@{6}: reset: moving to df5acc9
20952cf HEAD@{7}: reset: moving to 2095
df5acc9 HEAD@{8}: commit: git笔记
d930448 HEAD@{9}: commit: 进行了第四次修改
24de0b6 HEAD@{10}: commit: 第二次修改有误,返回上次版本
435af33 HEAD@{11}: commit: 进行了第二次修改
20952cf HEAD@{12}: commit (initial): 进行了一次修改
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard 3f47
HEAD is now at 3f47d64 唐辉阳的git笔记
admin@DESKTOP-1SHNHA2 MINGW64 /e/应用21301唐辉阳/Git (master)
$ git reset --hard bf3c
HEAD is now at bf3c4a7 git笔记1.0
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行
优点
分支常用命令
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -d 分支名 | 删除分支 |
git branch -v | 查看分支 |
git branch -r | 查看远程库分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
分支合并
代码冲突时,先改文件,再使用命令(不能带文件名)
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git diff |
查看冲突文件 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote -v //查看别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote add git-demo https://github.com/Tang17261828134/git_demo.git
//创建别名
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote -v
git-demo https://github.com/Tang17261828134/git_demo.git (fetch)
git-demo https://github.com/Tang17261828134/git_demo.git (push)
admin@DESKTOP-E8GCEEI MINGW64 ~/Desktop/my demo/git_demo (master)
$ git remote remove git-demo //删除别名
起好别名之后
可以通过别名上传文件
团队内合作
可以通过GitHub内中的设置有个manger access进行邀请账户
之后受邀人通过复制该链接进行同意即可
受邀人克隆clone代码之后编辑在上传可以实现更改代码的模型
跨团队合作
通过代码的fork变成自已的,之后修改之后通过pull request请求发送
如果成功就会变成是你修改的
ssh-keygen -t rsa
注意:用ssh免密登录的话,起别名是后面的链接只能是http,而不能是https
先设置一个忽视文件
与项目的实际功能无关,不参与服务器上部署运行
设置一个 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 文件中引用忽略配置文件
[user]
name = manong
email = yanjiuseng
[core]
excludesfile = C:/目录/git.ignore
添加成功后的文件为绿色,未添加至缓存区的文件为红色
创建分支这里有两种方法
这次通过学习git让我学到了很多,了解到了很多⾃⼰不知道的知识。Git 是⼀个分布式管理⼯具,通过指纹字符串来时刻保持数据的完整性,关⼼的是⽂件数据整体的变化,并不保存变化前后的差异数据;Git 在本地磁盘保存有关项⽬的历史更新,所有绝⼤多数操作只需要访问本地⽂件资源,并不需要Internet。当然可以使⽤GitHbub将代码托管,进⾏远程开发,⽅便团队⽐较分散的情况(这正体现Git分布式的优势);开发⼈员只需将项⽬clone到本地,进⾏相应的开发然后push上传到 GitHub即可。