一.安装git
官方下载:https://git-scm.com/downloads
二.建立仓库
本地仓库
例如我的本地项目在D:\data\code\C
1.进入项目
cd d:
cd D:\data\code\C
2.变成Git可以管理的仓库
git init
3.在GitHub (类似 Gitee 的代码托管服务)创建一个仓库
三.本地仓库关联 GitHub (类似 Gitee 的代码托管服务)仓库
连接
你需要添加一个新的远程仓库并将其命名为github
或其他你喜欢的名称。任选其一:
打开 Gihub 仓库页面,复制仓库的 HTTPS 或 SSH URL
git remote add github <github 仓库的 URL>
HTTPS URL,命令如下:
git remote add github https://<你的 github 用户名>:<你的 github 密码>@github.com/<你的 github 用户名>/<你的仓库名称>.git
SSH URL,命令可能如下:
git remote add gitee git@github.com:<你的 github 用户名>/<你的仓库名称>.git
绑定用户
1.绑定用户
绑定邮箱
git config --global user.email "you@example.com"
绑定用户名
git config --global user.name "Your Name"
2.创建密钥
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可
3.绑定密钥
登陆GitHub,打开Account settings
,SSH Keys
页面,点Add SSH Key
,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内
4.验证远程仓库:
git remote -v
四.上传本地代码
1.添加工作目录中的所有更改到暂存区:
git add .
如果需要添加单个文件或文件夹将.
换成文件或或文件夹所在的地址(例如git add README.md
)
2.提交已暂存的更改
git commit -m "提交注释"
3.上传本地代码到代码托管服务平台
git push github main
github是之前给仓库的命名,main是分支的名称
常用的 Git 命令
1.初始化和配置
初始化仓库:
git init
配置用户信息:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
2.基本操作
克隆仓库:
git clone repository_url
查看状态:
git status
查看提交日志:
git log
推送:
git push origin master
拉取:
git pull origin master
强制将分支的最新内容拉取到本地的分支:
git pull --force origin master
将本地分支重置为远程分支的最新状态,即使本地分支有未提交的修改:
git reset --hard origin/master
3.添加,清除,提交,查看
添加所有更改到暂存区:
git add .
清除暂存区的内容:
git reset
将文件从缓存区中移除,但物理文件仍然存在:
git rm --cached <文件路径>
查看暂存区的内容:
git ls-files
这会将所有已经暂存的更改从暂存区移除,但是保留在工作目录中的文件不受影响。如果你只是想撤销部分文件的暂存,可以指定这些文件:
git reset file1 file2
提交已暂存的更改:
git commit -m "Commit message"
4.分支操作
查看分支:
git branch
创建新分支:
git branch branch_name
切换到分支:
git checkout branch_name
创建并切换到新分支:
git checkout -b new_branch_name
合并分支:
git merge source_branch
删除本地分支:
git branch -d branch_name
强制删除本地分支(如果分支还没有合并):
git branch -D branch_name
5.远程操作
移除与远程仓库的关联:
git remote remove origin
断开连接而不删除关联:
git remote disconnect origin
添加远程仓库:
git remote add origin remote_repository_url
将本地分支推送到远程仓库:
git push -u origin local_branch
从远程仓库拉取更新:
git pull origin branch_name
6.撤销更改
撤销工作目录中的更改:
git checkout -- file_name
撤销已暂存的更改:
git reset file_name
版本回退:
HEAD相当与当前、HEAD~1 退回上一个版本、HEAD~2 退回上两个版本,依次类推。
git reset --hard HEAD~1
或者
git reset --hard (目标版本号)
7.分支管理
删除本地分支:
git branch -d branch_name
删除远程分支:
git push origin --delete remote_branch_name
8.查看差异
查看工作目录和暂存区之间的差异:
git diff
查看已暂存和未暂存的差异:
git diff --staged
报错
这个警告是由于 Windows 和 Unix 系统之间的换行符 (\n 和 \r\n) 不同引起的。在 Windows
上,文本文件的行尾通常由 \r\n 表示,而在 Unix/Linux 等系统上,行尾通常由 \n 表示。这个警告通常出现在文件的换行符混合使用时,比如在 Windows 系统上使用的 CRLF(\r\n)格式的换行符,而在 Git 中又配置了
core.autocrlf 为 true 的情况下。
1.禁用 core.autocrlf:
git config --global core.autocrlf false
这将禁用自动换行符转换,保留文件中原有的换行符。
2.设置 core.eol:
如果你希望在提交时保持换行符转换,但希望检出时保持原样,你可以尝试设置 core.eol:
git config --global core.eol lf
或者:
git config --global core.eol crlf
这将设置 Git 使用指定的换行符风格。
3.手动修复文件:
如果只是个别文件出现这个问题,你也可以手动修复,将文件的行尾调整为你希望的格式。可以使用文本编辑器或者 Git 提供的工具。
注意,上述设置是全局的,对所有 Git 仓库有效。如果只想在当前仓库中应用这些设置,去掉 --global 即可。
进阶
1.使用
.gitignore
文件来忽略忽略未追踪文件在项目根目录下创建一个名为
.gitignore
的文件,然后在文件中列出你想要忽略的文件和目录例如
# 忽略 test.c 文件
practice_code/test.c
# 忽略 practice_test/ 目录下的文件
practice_test/
# 忽略 所有test.c 文件
**/test.c
2.将已被追踪的文件的更改加入到暂存区
git add -u
1.创建钩子
在本地仓库的
.git/hooks
目录下,你可以创建一个名为post-commit
的文件,该文件是在每次提交后运行的钩子#!/bin/bash
# 自动同步到 Gitee
git push gitee main
# 自动同步到 GitHub
git push github main
2.设置脚本执行权限
chmod +x .git/hooks/post-commit
3.测试自动同步
git commit -m "Your commit message"
将 Git Bash 的默认工作目录设置为
D:\data\code\C。
对于 Linux 和 macOS 用户:
1.打开终端
2.运行以下命令检查是否存在 .bashrc 文件:
ls -a ~/
如果不存在,可以创建一个:
touch ~/.bashrc
3.然后使用文本编辑器编辑.bashrc
文件:
vim ~/.bashrc
在文件中添加以下行:
cd /d/data/code/C
保存并关闭编辑器。
关闭当前终端窗口,重新打开一个新的窗口。
对于 Windows 用户:
1.打开 Git Bash。
2.运行以下命令检查是否存在.bash_profile
文件:
ls -a ~/
如果不存在,可以创建一个:
touch ~/.bash_profile
然后使用文本编辑器编辑 .bash_profile 文件。
vim ~/.bash_profile
在文件中添加以下行:
cd /d/data/code/C
保存并关闭编辑器。
关闭当前 Git Bash 窗口,重新打开一个新的窗口。
现在,每次你打开 Git Bash,它都应该默认定位到 D:\data\code\C 目录。确保路径设置正确,并且没有其他地方覆盖了这个设置。