鱼香rose'Blog

git

\(\Huge{Linux-git}\)

Git 基本指令的使用

img

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

git 基本指令

复制:ctrl+insert

粘贴:shift+insert

上传项目(本地 → 远程仓库)

git init

Git 使用 git init 命令来初始化一个 Git 仓库,执行完 git init 命令后,会生成一个.git 目录,该目录包含了资源数据,且只会在仓库的根目录生成。

如果要在指定的目录下生成仓库,则指令为:

git init newDir

newDir 为仓库的路径,执行完成之后,会在 newDir 目录下生成一个.git 目录。

执行该命令之后,就可以在当前目录下生成 newtest 文件夹,并在改文件夹下生成.init 文件夹。

拉取项目(远程仓库 → 本地)

git fetch:远程跟踪分支下载所有历史记录

git merge:合并远程仓库的文件到本地

git pullgit fetch+git merge

git clone

使用 git clone 命令可以从 Git 仓库拷贝项目,类似于 SVN 中的 svn checkout,命令格式为:

git clone <url> [directory]

url 为 git 仓库地址,directory 为本地目录,比如,要克隆某个 Git 代码仓库,可以用下面的命令:

git clone git://github.com/schacon/grit.git

执行完成之后会在当前目录下生成仓库,如果要指定目录下生成,则可以在后面加一个具体的位置路径,如:

git clone git://github.com/schacon/grit.git newgit

git clone 时,可以用不同的协议,包括 ssh, git, https 等,其中最常用的是 ssh,因为速度较快,还可以配置公钥免输入密码,各种写法格式如下:

git clone git@github.com/schacon/grit.git         --SSH协议
git clone git://github.com/schacon/grit.git          --GIT协议
git clone https://github.com/schacon/grit.git      --HTTPS协议

仓库管理

本地仓库

git status:查看仓库当前状态,显示有变更的文件。

git status -s:获得简短的输出结果。

git log:查看历史提交记录。

点击'q'退出

git reset :回退到上一次的版本。

git reflog:强制回退到之前的某一个状态。

git diff:显示本地文件与暂存区的差异

git restore --staged FileName:将 FileName 从暂存区拉回到本地工作区

git restore "FileName":(如果文件被跟踪,且本地文件删除,这个指令可以恢复)

git reset 修改代号:回退到某一次的版本

git commit -m "XXX" --amend:更改已修改条目(返回并修改先前的提交)

远程仓库

git remote

git remote 命令用于管理 Git 仓库中的远程仓库

git remote:列出当前仓库中已配置的远程仓库

git remote -v:列出当前仓库中已配置的远程仓库,并显示它们的 URL

git remote add <remote_name> <remote_url:添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。

git remote rename <old_name> <new_name>:将已配置的远程仓库重命名。

git remote remove <remote_name>:从当前仓库中删除指定的远程仓库。

git remote set-url <remote_name> <new_url>:修改指定远程仓库的 URL。

git remote show <remote_name>:显示指定远程仓库的详细信息,包括 URL 和跟踪分支。

git remote show [remote]:显示某个远程仓库的信息

``:

``:

git remote		#列出远程仓库
git remote -v	#列出并显示URL
git remote add origin https://github.com/user/repo.git	#添加新的远程仓库
git remote rename origin new-origin	#重命名
git remote remove new-origin		#删除指定远程仓库
git remote set-url origin https://github.com/user/new-repo.git	#修改URL
git remote show origin	#查看远程仓库信息

让 git 忽略对某些文件的跟踪

  1. 新建一个 .gitgnore 文件,然后在里面写:
# ignore all .txt files #注释
*.txt					#'*' + 文件类型

git 常用指令

全局设置

  1. git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig 文件中
  2. git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig 文件中
  3. git init:将当前目录配置成 git 仓库,信息记录在隐藏的.git 文件夹中

常用命令

  1. git add XX :将 XX 文件添加到暂存区
  2. git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
  3. git status:查看仓库状态
  4. git log:查看当前分支的所有版本
  5. git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
  6. git clone git@git.acwing.com:xxx/XXX.git:将远程仓库 XXX 下载到当前目录下
  7. git branch:查看所有分支和当前所处分支

查看命令

  1. git diff XX:查看 XX 文件相对于暂存区修改了哪些内容
  2. git status:查看仓库状态
  3. git log:查看当前分支的所有版本
  4. git log --pretty=oneline:用一行来显示
  5. git reflog:查看 HEAD 指针的移动历史(包括被回滚的版本)
  6. git branch:查看所有分支和当前所处分支
  7. git pull :将远程仓库的当前分支与本地仓库的当前分支合并

删除命令

  1. git rm --cached XX:将文件从仓库索引目录中删掉,不希望管理这个文件
  2. git restore --staged xx将 xx 从暂存区里移除
  3. git checkout — XX或git restore XX将 XX 文件尚未加入暂存区的修改全部撤销

代码回滚

  1. git reset --hard HEAD^ 或git reset --hard HEAD~ :将代码库回滚到上一个版本
  2. git reset --hard HEAD^^:往上回滚两次,以此类推
  3. git reset --hard HEAD~100:往上回滚 100 个版本
  4. git reset --hard 版本号:回滚到某一特定版本

远程仓库

  1. git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库

  2. git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库

  3. git push origin branch_name:将本地的某个分支推送到远程仓库

  4. git clone git@git.acwing.com:xxx/XXX.git:将远程仓库 XXX 下载到当前目录下

  5. git push --set-upstream origin branch_name:设置本地的 branch_name 分支对应远程仓库的

    branch_name 分支

  6. git push -d origin branch_name:删除远程仓库的 branch_name 分支

  7. git checkout -t origin/branch_name: 将远程的 branch_name 分支拉取到本地

  8. git pull :将远程仓库的当前分支与本地仓库的当前分支合并

  9. git pull origin branch_name:将远程仓库的 branch_name 分支与本地仓库的当前分支合并

  10. git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的 branch_name1 分支与本地的 branch_name2 分支对应

  11. git pull origin master –-allow-unrelated-histories:当出现本地仓库不是由远程仓库克隆时,并且远程仓库和本地仓库内容不一致,导致本地 push 的时候出现冲突,此时使用本命令将远程仓库拉回本地,并修改冲突后重新 push 即可。

分支命令

  1. git branch branch_name:创建新分支

  2. git branch:查看所有分支和当前所处分支

  3. git checkout -b branch_name:创建并切换到 branch_name 这个分支

  4. git checkout branch_name:切换到 branch_name 这个分支

  5. git merge branch_name:将分支 branch_name 合并到当前分支上

  6. git branch -d branch_name:删除本地仓库的 branch_name 分支

  7. git push --set-upstream origin branch_name:设置本地的 branch_name 分支对应远程仓库的 branch_name 分支

  8. git push -d origin branch_name:删除远程仓库的 branch_name 分支

  9. git checkout -t origin/branch_name: 将远程的 branch_name 分支拉取到本地

  10. git pull :将远程仓库的当前分支与本地仓库的当前分支合并

  11. git pull origin branch_name:将远程仓库的 branch_name 分支与本地仓库的当前分支合并

  12. git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的

    branch_name1 分支与本地的 branch_name2 分支对应

stash 暂存

  1. git stash:将工作区和暂存区中尚未提交的修改存入栈中
  2. git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
  3. git stash drop:删除栈顶存储的修改
  4. git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
  5. git stash list:查看栈中所有元素

疑难杂症

windows系统中文乱码(274\232\350\256\256\346\200\273\347\273\223)

git config --global core.quotepath false

如果不行的话,可以:打开git bush → 右键 → Options → Text → 【Locale = zh_CN,character set = UTF-8】

tree -N		# -N选项就是用编码规范来显示
posted @ 2026-01-15 22:12  鱼香_rose  阅读(2)  评论(0)    收藏  举报