git 使用笔记
一、下载安装
下载地址:git
二、基础设置
2.1、配置用户信息
# 设置全局用户名和电子邮件gitconfig--globaluser.name"用户名"gitconfig--globaluser.email"用户名"# 某个项目中使用不同的用户名和邮箱gitconfig user.name"用户名"gitconfig user.email"用户名"2.2、配置查询
#查询设置gitconfig--list2.3、删除
#删除用户信息gitcredential-manager uninstall#删除一个文件rmname2.4、公钥操作
#设置公钥 #输入邮箱 ssh-keygen -t rsa -C "xxx@xxx.com" #查看密钥 cat ~/.ssh/id_rsa.pub2.5、仓库操作
#初始化gitgitinit#连接gitee项目gitremoteaddorigin https:/gitee.com/仓库名/项目名.git#删除远程文件, cached不会把本地的文件删除gitrm-r--cached<dir_name>#删除远程仓库gitremotermname#修改仓库名gitremoterenameold_name new_name2.6、文件/文件夹
#新建一个文件 如touch index.js在当前目录下新建index.js文件touchname#新建一个目录,就是新建一个文件夹. 如mkdir src 新建src 文件夹mkdirname#删除一个文件夹,先删除文件夹里面的内容,再删除文件夹rm-rname#移动文件,例如:mv a.html src b.html# a是我们要移动的文件,# src 是目标文件夹,#当然, 这样写,必须保证文件和目标文件夹在同一目录下mvname src name2.7、上传
#添加到暂存区里面去,如果后面接小数点“.”,意为添加文件夹下的所有文件gitadd.#添加到暂存区里面去,如果后面接小数点“.”,意为添加文件夹下的所有文件gitaddfile1.txt file1.txt#把文件提交到仓库。引号内为提交说明gitcommit-m"备注内容"#将最新的修改强制推送到远程仓库gitpush-uorigin master-f#将最新的修改推送到远程仓库gitpush origin master#切换到分支:gitcheckout-bbranch_name2.8、下拉
#同步项目到本地#主分支拉取gitclone https:/gitee.com/xxx/#指定分支拉取 testing分支名gitclone-btesting https:/gitee.com/xxx.git#同步项目到本地 testing分支名gitpull origin testing#将远程origin主机的master分支拉取过来和本地的当前分支进行合并gitpull origin2.9、分支管理
#分支#查看分支gitbranch#查看分支gitbranch-a#添加分支 创建完分支后git branch可以查看当前分支是否已经创建成功gitbranch testing#添加分支gitbranch checkout-btesting#推送分支gitpush origin testing#更新远程分支到本地gitfetch#切换分支gitcheckout testing#删除分支gitbranch-dtesting2.10、版本管理
#版本管理#查看日志gitlog#查看日志gitreset--hardcommit#推送到本地到远程仓库:让远程仓库代码和本地一样gitpush origin HEAD--force2.11、清屏
#把git bash命令窗口中的所有内容清空reset三、基础操作
3.1、初步操作
3.1.1、配置 Git 用户信息
每次 Git 提交代码时,Git 会使用用户的姓名和电子邮件来标记这次提交。这是 Git 的基本配置。
设置全局用户名和电子邮件:
gitconfig--globaluser.name"Your Name"gitconfig--globaluser.email"your_email@example.com"如果你只想在某个项目中使用不同的用户名和邮箱,可以使用
--local修改当前仓库的设置:gitconfig user.name"New Name"gitconfig user.email"new_email@example.com"
3.1.2、配置 Git 编辑器
如果你在提交时没有提供提交信息,Git 会打开默认的文本编辑器来让你输入。你可以选择一个你熟悉的编辑器:
设置 Vim 为默认编辑器(默认编辑器):
gitconfig--globalcore.editorvim设置其他编辑器,如 VS Code:
gitconfig--globalcore.editor"code --wait"
3.1.3、查看 Git 配置
你可以使用以下命令查看当前的 Git 配置信息:
gitconfig--list3.2、下载仓库或文件
Git 提供了多种方法来下载仓库或文件,最常见的是克隆仓库和拉取最新代码。
3.2.1、克隆仓库
如果你想下载一个 Git 仓库,可以使用git clone命令。
克隆远程仓库:
gitclone https://github.com/username/repository.git或者使用 SSH(如果已配置 SSH 密钥):
gitclone git@github.com:username/repository.git克隆指定分支: 如果仓库有多个分支,你可以通过
-b参数指定要克隆的分支:gitclone-bbranch_name https://github.com/username/repository.git
3.2.2、拉取更新
如果你已经克隆了仓库,并且希望将远程仓库的最新更改拉取到本地,可以使用git pull命令:
拉取并合并远程主分支(默认是
origin/master):gitpull origin master拉取其他分支的更改:
gitpull origin branch_name
3.3、新建仓库上传
3.3.1、创建新的 Git 仓库
创建一个新目录,并进入该目录:
mkdirnew_repositorycdnew_repository初始化 Git 仓库:
gitinit这将在当前目录中创建一个
.git文件夹,表示该目录是一个 Git 仓库。
3.3.2、添加文件并提交
将文件添加到 Git 仓库:
echo"Hello, World!">file.txt将文件添加到 Git 暂存区:
gitaddfile.txt提交文件到仓库:
gitcommit-m"Add file.txt"
3.3.3、将本地仓库推送到远程
创建一个远程仓库(如 GitHub 或 GitLab)。
将远程仓库添加为本地仓库的远程源:
gitremoteaddorigin https://github.com/username/new_repository.git将本地仓库推送到远程仓库:
# 上传的是 master 分支gitpush-uorigin master# 上传指定分支gitcheckout-bdevgitpush-uorigin dev如果是第一次推送,可以使用
-u设置上游分支。
3.4、已有仓库上传文件
3.4.1、仓库同步后上传
本地和服务器端都已经有仓库,并且需要同步文件,操作如下:
3.4.1.1、检查远程仓库
首先,确保你的本地仓库与远程仓库连接正常。可以使用git remote -v命令查看当前远程仓库配置:
gitremote-v如果远程仓库没有配置,可以使用git remote add命令将远程仓库添加到本地仓库:
gitremoteaddorigin https://github.com/username/my_project.git3.4.1.2、拉取远程仓库的更改
在进行上传之前,首先拉取远程仓库的最新更改,避免代码冲突:
gitpull origin master如果远程仓库有多个分支,拉取特定的分支:
gitpull origin dev3.4.1.3、上传本地更改
在本地仓库进行修改后,提交并推送更改到远程仓库:
添加修改文件:
gitadd.提交修改:
gitcommit-m"Update files"推送更改到远程仓库:
gitpush origin master
如果你在本地使用的是其他分支(如dev),推送时指定相应的分支:
gitpush origin dev3.4.1.4、同步完成
此时,远程仓库和本地仓库的文件已同步。
3.4.1.2、完整下拉后上传
远程仓库已经在服务器上创建,本地没有该仓库,你需要编辑文件并将更改同步到服务器。
3.4.1.2.1、克隆远程仓库到本地
首先,你需要将远程仓库克隆到本地:
gitclone https://github.com/username/my_project.git或者使用 SSH 协议(如果你已经配置了 SSH 密钥):
gitclone git@github.com:username/my_project.git3.4.1.2.2、编辑文件
进入克隆下来的本地仓库并进行文件修改:
cdmy_project例如,修改一个文件:
echo"New content">file.txt或者编辑文件:
vimfile.txt3.4.1.2.3、提交修改
在本地进行更改后,使用以下命令将修改提交到本地仓库:
添加文件到暂存区:
gitaddfile.txt提交更改:
gitcommit-m"Update file.txt"
3.4.1.2.4、推送更改到远程仓库
提交本地更改后,将这些更改推送到远程仓库:
git push origin master如果你在其他分支上工作,推送时指定相应分支:
gitpush origin dev3.4.1.2.5、同步完成
现在,远程仓库上的文件已经更新,并且与本地更改同步。
3.5、版本以及分支管理
3.5.1、查看版本历史
查看提交日志:
gitlog可以加上
--oneline参数,以简洁的方式查看:gitlog--oneline查看某个文件的历史记录:
gitlog file.txt
3.5.2、创建分支
创建一个新分支:
gitbranch new_branch_name切换到新创建的分支:
gitcheckout new_branch_name或者使用以下命令创建并切换到新分支:
gitcheckout-bnew_branch_name
3.5.3、合并分支
切换到你想合并到的分支(例如
master):gitcheckout master合并其他分支(例如
new_branch_name)到当前分支:gitmerge new_branch_name如果有冲突,Git 会提示你手动解决冲突。
3.5.4、删除分支
删除本地分支:
gitbranch-dbranch_name删除远程分支:
gitpush origin--deletebranch_name
3.5.5、查看当前分支
查看当前所在分支:
gitbranch查看所有分支(包括远程分支):
gitbranch-a
3.5.6、切换分支
切换到其他分支:
gitcheckout branch_name四、快捷方式
4.1、cmd脚本
新建.cmd文件输入以下内容,注意:CMD命令提示符默认使用的是**GBK/GB2312**编码格式,如果编码格式错误,中文会显示乱码。
gitpull origin mastergitadd.gitcommit-m"Synchronize from the local server to the cloud server"gitpush origin master附件1:常见问题
1、换行符 LF 警告
解释:
- LF(Line Feed):Linux 和 macOS 使用的换行符。
- CRLF(Carriage Return + Line Feed):Windows 使用的换行符。
Git 默认会根据操作系统自动调整换行符以保持一致性,避免不同操作系统下的换行符差异导致问题。这个警告告诉你,Git 将在提交时自动将文件中的换行符从LF转换为CRLF,以适应你当前的操作系统(Windows)。
解决方法
- 忽略换行符转换警告
如果你不关心换行符的转换,并且希望 Git 按照默认方式自动转换,可以忽略这些警告。Git 会在提交时进行换行符转换,不会影响代码的功能。
- 配置 Git 保持一致的换行符设置
你可以配置 Git 以强制保持一致的换行符风格。例如,你可以指定 Git 使用LF(Linux/macOS 样式的换行符),这样无论在哪个操作系统上操作,提交到仓库的文件都将始终使用LF。
在 Git 中设置core.autocrlf选项:
在 Windows 上强制转换为 CRLF(默认设置):
gitconfig--globalcore.autocrlftrue在 Windows 上保留 LF 换行符: 如果你希望 Git 始终使用 LF(即使在 Windows 上也不转换为 CRLF),可以设置为
input:gitconfig--globalcore.autocrlf input禁止换行符转换: 如果你不希望 Git 做任何换行符的自动转换,可以设置为
false:gitconfig--globalcore.autocrlffalse
- 手动修复换行符问题
如果你希望在提交之前修复文件中的换行符问题,可以使用以下命令将所有文件的换行符转换为LF(适用于 Linux/macOS):
find.-typef-execdos2unix{}\;在 Windows 上,你可以使用unix2dos或dos2unix工具来修复换行符。
2、仓库的所有者与当前用户不匹配
仓库所在的目录///my_project/electronic_lighter由一个不同的用户(S-1-5-21-2988692519-1305695472-2085298601-3002)所有,而当前操作的用户是MO/aa(S-1-5-21-859680190-3714723100-4203350317-1001)。
Git 在某些情况下(如 NFS 挂载的网络驱动器或跨不同操作系统的文件共享)会对目录的所有权进行严格检查,以确保文件系统的安全性。如果它发现仓库目录的所有者不匹配,Git 会认为这是一个潜在的安全风险。
解决方法
你可以通过添加一个safe.directory配置来告诉 Git 该目录是安全的并允许操作。
- 添加安全目录配
根据提示信息,你可以使用以下命令将该目录添加为安全目录:
gitconfig--global--addsafe.directory'%(prefix)///my_project/electronic_lighter'这条命令会将指定目录标记为安全目录,并允许 Git 在该目录下进行操作。
- 验证配置是否成功
你可以通过以下命令检查配置是否正确添加:
gitconfig--global--get-all safe.directory这将列出所有被 Git 标记为安全的目录。
- 重新尝试
git add .
完成配置后,重新运行你的git add .命令:
gitadd.