git 使用
GIT正常使用看它
git 作用
1 项目托管 --- 代码同步到仓库
2 版本控制 --- 代码变更有记录
3 协同开发 --- 不同成员修改提交需要master授权
git 本身是linux 大佬开发的一套协议 ,实现版本很多 主要分两类:
1 开源社区
提倡代码开源共享
最常见的就是国际通过的开源社区githup 🐮
其次是中国开源社区gitee 🤡
2 私有仓库
一般是公司搭建的只给公司成员使用
最出名的是gitlab
其次和国产的gitlab Gogs[https://gogs.io/docs]
GIT 空间结构
本地仓库 (提交至远程仓库)
工作区(本地)
当你的项目下有.git 目录这个时候你的项目就是git工作区 = = 你的项目代码
暂存区 (本地)
当你提交想要提交代码时是先add 放入暂存区 当你commit 确定提交时是先在你本地暂存区创建了一个新的版本(这个其实有时候很好有时候有点坑)
远程仓库 (远程)
当你 push 或者pull 的时候其实就是同步你的本地仓库和远程仓库
GIT常用命令
拉取/提交代码
拉取代码
找到你的项目链接
如 https://github.com/renoyuan/DjangoBlog.git
终端输入
git clone https://github.com/renoyuan/DjangoBlog.git
提交代码
git add . # 添加所有文件到暂存区
git add filename # 单个文件/目录到暂存区
git ls-files # 查看暂存区中有哪些文件
git rm --cached filename # 删除暂存区文件 ,历史版本中的删不掉
git rm filename # 删除工作区区文件 == rm filename
git commit -m '版本信息必填' # 提交版本
git push # 代码同步推到远程仓库
分支和权限
git 有一个分支的概念用来管理一个项目不同版本
创建一个仓库必须有一个master 分支是主分支 因为一些原因现在也叫main 分支
一般拉取项目都是拉的主分支
一般只给项目负责人master 的权限其他人只能fork 项目或者创建其他分支
创建/关联分支
git branch # 列出你在本地的分支
git branch branchname # 创建本地分支
git checkout branchname # 切换分支命令:
git merge branchname # 合并两个分支
git branch -d branchname # 删除分支
设置本地分支关联远程分支
git branch --set-upstream-to=origin/reno_dev reno_dev
删除暂存区指定文件
git rm --cached <文件名>
将暂存区中的内容删除,工作区中对应的文件并不会受到影响。
git rm -f <文件名>
不但将暂存区中的内容删除,并且工作区中对应的文件也会被删除。
上面两个命令如果要删除多个文件使用空格分隔文件名称即可。
远程文件
暂存区相关命令
git rm --cache 文件名 仅仅删除暂存区里的文件
git ls-files 命令是用来查看暂存区中文件信息
git rm -f 文件名 删除暂存区和工作区的文件
2.使用git restore --staged <文件名>取消暂存区的修改,文件的修改会回到工作区。
3.使用git reset HEAD可以将暂存区的所有文件恢复到工作区。
4.使用git restore <文件名>可以将工作区的修改取消。
5.使用git checkout <文件名>也可以将工作区的修改取消。 END
免密使用
为了安全git 每一次本地同步到远程都需要身份验证,你也可以那么安全
1 本地保存密码
# 全局的
git config --global credential.helper store
git config --global user.name "reno" # 你的名字
git config --global user.email "renoyuan@foxmail.com" # 你的邮箱
# 本地的
git config --local user.name "reno" # 你的名字
git config --local user.email "renoyuan@foxmail.com" [email]
git config --local credential.helper store
# 还需要提交输入一次才能保存
2 ssh 认证
这个认证相当于是让git 仓库记住你的电脑
# 生成密钥
ssh-keygen -t rsa -C "yuanhaiying@tlrobot.com" -f ~/.ssh/reno_rsa # ~/.ssh/ 一般都在这个目录下
# 这个操作会生成一对公私钥 ,私钥不动把.pub后缀的公钥复制到git 仓库里面的对应位置
# 所有的其他系统用ssh 认证基本都是这样
进入到本地git项目下面,打开git,输入命令:
按三次回车
sshyuanhaiying@tlrobot.com
在用户目录下会有.ssh 目录找到公钥复制到git仓库上
如何忽略一些文件 --- 很常用
.gitignore
文件是一个文本文件,它告诉 Git 要忽略项目中的哪些文件或文件夹。
本地 .gitignore
文件通常被放置在项目的根目录中。你还可以创建一个全局 .gitignore
文件,该文件中的所有条目都会在你所有的 Git 仓库中被忽略。
要创建本地 .gitignore
文件,请创建一个文本文件,并将其命名为 .gitignore
(请记住在开头包含 .
)。 然后根据需要编辑该文件。在每一行列出你希望 Git 忽略的文件或文件夹。
该文件中的条目也可以遵循匹配模式。
*
用作通配符匹配/
用于忽略相对于.gitignore
文件的路径名#
用于将注释添加到.gitignore
文件
这是一个 .gitignore
文件的示例:
# Ignore Mac system files
.DS_store
# Ignore node_modules folder
node_modules
# Ignore all text files
*.txt
# Ignore files related to API keys
.env
# Ignore SASS config files
.sass-cache
如何忽略已检入的文件
要忽略单个文件,即停止跟踪文件但不从系统中删除它,请使用:
git rm --cached filename
要忽略 .gitignore
中的每个文件:
首先提交代码修改,然后运行:
git rm -r --cached
这将从索引(暂存区域)中删除所有更改的文件,然后运行:
git add .
提交:
git commit -m ".gitignore is now working"
要取消 git rm --cached filename
,请运行 git add filename
。
要添加或更改全局 .gitignore
文件,请运行以下命令:
git config --global core.excludesfile ~/.gitignore_global
这将创建文件 ~/.gitignore_global
。现在,你可以通过与编辑本地 .gitignore
文件相同的方式编辑该文件。你所有的 Git 仓库都将忽略全局 .gitignore
文件中列出的文件和文件夹。
一些其他命令
设置显示中文
git config --global core.quotepath false