Git基本用法总结
设置全局用户名
git config --global user.name xxx #设置全局用户名
设置全局邮箱地址
git config --global user.email xxx@xxx.com #设置全局邮箱地址
查看所有的 Git 配置,包括用户信息
git config --list #查看所有的 Git 配置,包括用户信息
git init #将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
git add XX #将XX文件添加到暂存区
git add . #将所有待加入暂存区的文件加入暂存区
git restore
命令用于恢复文件到工作区或暂存区,其 --staged
选项和不带 --staged
的版本在功能上有显著区别。
git restore --staged
-
作用:
--staged
选项用于将文件从暂存区(即缓存区)移除,但不影响工作区中的文件内容。 -
场景:当你不小心将某些文件添加到了暂存区(例如使用
git add
),但是你决定不再包括这些文件在下一次提交中。使用git restore --staged
可以将这些文件从暂存区移除,同时保留工作区中的修改。
git add a.txt # 将 a.txt 文件添加到暂存区
git restore --staged a.txt # 从暂存区移除 a.txt 文件,但工作区中的 a.txt 仍然存在
git restore
(不带 --staged
)
-
作用:不带
--staged
的git restore
用于将文件从工作区恢复到暂存区的状态,即撤销工作区的更改,使其与暂存区中的版本一致。
-
场景:当你在工作区中对文件进行了更改,而你希望撤销这些更改,使文件恢复到暂存区中的状态(即最后一次添加或提交的状态)。这将覆盖工作区中的修改,但不会影响暂存区中的文件。
git add a.txt # 将 a.txt 文件添加到暂存区
echo "some changes" >> a.txt # 对 a.txt 文件进行修改
git restore a.txt # 将 a.txt 文件恢复到暂存区中的版本,即撤销对 a.txt 的修改
将暂存区的内容提交到当前分支
git commit -m "给自己看的备注信息"
查看仓库状态
git status #查看仓库状态
查看XX文件相对于暂存区修改了哪些内容
git diff XX #查看XX文件相对于暂存区修改了哪些内容
查看当前分支的所有版本
git log #查看当前分支的所有版本
查看HEAD指针的移动历史(包括被回滚的版本)
git reflog #查看HEAD指针的移动历史(包括被回滚的版本)
将代码库回滚到上一个版本
git reset --hard HEAD^ #将代码库回滚到上一个版本
回滚
git reset --hard HEAD^^ #往上回滚两次,以此类推
git reset --hard HEAD~100 #往上回滚100个版本
回滚到某一特定版本
git reset --hard 版本号 #回滚到某一特定版本
生成密钥
ssh-keygen -t rsa #生成后一路回车
获取密钥
cat ~/.ssh/id_rsa.pub #公钥
验证是否认证成功(用Gitee)
ssh -T git@gitee.com
在本地告诉终端,远程仓库的地址(这里是将本地仓库与云端的新建的一个仓库连接,情景是:我先在本地开发一些项目,但是没有上传,然后我在Gitee中创建一个仓库叫git_test.git。我现在想要将本地的上传到云端,首先要建立连接,然后再上传)
git remote add origin git@gitee.com:someone/git_test.git #最后一个是地址,起一个名字叫origin
查看远程仓库
git remote
将本地文件夹推送到远程仓库
git push -u origin master
git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
git push -u (第一次需要-u以后不需要) #将当前分支推送到远程仓库
将云端的项目克隆到本地
git clone git@git.acwing.com:xxx/XXX.git
创建并切换到branch_name这个分支
git checkout -b branch_name #创建并切换到branch_name这个分支
查看所有分支和当前所处分支
git branch #查看所有分支和当前所处分支
切换到branch_name这个分支
git checkout branch_name #切换到branch_name这个分支
将分支branch_name合并到当前分支上(注意,一般先切换到主分支,然后合并其他分支)
git merge branch_name #将分支branch_name合并到当前分支上
删除分支(注意:要删除这个分支,首先要进其他分支。)
git branch -d branch_name #删除本地仓库的branch_name分支
创建新分支
git branch branch_name #创建新分支
设置本地的branch_name分支对应远程仓库的branch_name分支(注意,这里可以简单的git push 然后如果远程仓库没有这个分支,终端会报错,然后会打印一个命令,直接复制这个命令然后在终端执行就可以了)(这个是本地有这个分支,但是云端没有,需要将本地的分支上传到云端)
git push --set-upstream origin branch_name # 设置本地的branch_name分支对应远程仓库的branch_name分支
删除远程仓库的branch_name分支
git push -d origin branch_name #删除远程仓库的branch_name分支
将远程的branch_name1分支与本地的branch_name2分支对应(绑定在一起)(这个是云端已经有分支了,但是本地没有对应的,需要在本地先建立一个这个分支,然后将这个分支与云端的分支对应)
git branch --set-upstream-to=origin/branch_name1 branch_name2 #将远程的branch_name1分支与本地的branch_name2分支对应
#然后拉下来,并且*******合并*****
git pull
将云端的分支拉下来也可以不用“先同步两个分支”,可以在云端的一个分支和本地一个直接合并(这里是,云端有一个本地没有的分支,branch_name 然后将云端的这个分支合并到本地当前分支)
git pull origin branch_name #将远程仓库的branch_name分支与本地仓库的当前分支合并
`git clone` 和 `git pull` 是 Git 中两个不同的命令,它们的功能和用途如下:
1. `git clone`
- **功能**:将远程仓库的所有内容(包括文件、历史记录、分支等)复制到本地计算机。
- **使用场景**:通常在你第一次获取一个远程仓库时使用。
git clone https://gitee.com/username/repo.git
2. `git pull`
- **功能**:从远程仓库拉取最新的更改并合并到当前本地分支。相当于 `git fetch` 和 `git merge` 的组合。
- **使用场景**:在你已经有了本地仓库,并想更新本地分支以获取最新的更改时使用。
git pull origin your-branch-name
总结
- **`git clone`**:用于首次获取整个仓库。
- **`git pull`**:用于更新已存在的本地仓库。
这两个命令在工作流程中起到不同的作用。希望这个解释对你有帮助!如果还有其他问题,随时问我!
注意:
当你使用 git clone
命令时,Git 会自动为你创建一个与远程仓库的连接,包括设置 origin
作为默认的远程仓库。不需要使用“git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库”。
具体说明
git clone
:这个命令会将远程仓库的内容克隆到你的本地计算机,并自动设置好远程仓库的地址(例如origin
),你不需要手动执行git remote add origin ...
。
例子
当你执行以下命令:
git clone git@git.acwing.com:xxx/XXX.git
Git 会执行以下操作:
- 克隆远程仓库的所有内容。
- 创建一个名为
origin
的远程连接,指向你克隆的仓库。 - 默认会将当前分支设置为跟踪远程的主分支(通常是
main
或master
)。
总结
因此,使用 git clone
后,你就不需要再手动添加远程仓库的关联了。如果你想查看当前的远程仓库设置,可以使用: