常用的 Git 指令

Posted on Mon, Jan 30, 2023 总结 工具

一般来说,我是查过了ChatGPT并且实践过了才会写到这里。放个推荐的git链接(这里),原理(这里)。

如何 push 你的项目至 GitHub Repo,包括使用 .gitignore 忽略项目文件夹中的某些文件

  1. 创建一个GitHub仓库
  2. 打开你的本地终端 local terminal 在你的本地项目仓库中
  3. git init 初始化一个 Git 本地仓库
  4. git remote add origin [repository URL] 连接到你的远程GitHub仓库
  5. 请注意在执行step 6之前,如果你有不需要上传的文件或者文件夹,请创建一个 .gitignore 文件,并将忽略的文件名写在里面,类似这个链接中的写法。
    1. 常用的 .gitignore 内容:
    node_modules
    build
    .idea
    __pycache__/
    *.pyc
  6. git add . 添加你的所有准备上传到GitHub中的文件
  7. git commit -m “message here” commit你的所有更改
  8. git push origin [branch name] push到你的远程仓库中,请注意GitHub默认的分支叫 main ,但你可以上传到别的分支中,如 master

如何得知当前 IDE 连接的是什么 remote repo 地址,并更改你的远程仓库 remote repo 的连接,比如你的仓库改名了

  1. 打开你的本地终端 local terminal 在你的本地项目仓库中
  2. git remote -v 查看当前的remote repo连接
  3. git remote remove origin 移除当前的remote连接
  4. git remote add origin [new repository URL] 添加新的remote连接
  5. git remote -v 验证是否连接的仓库已经被更改

如何合并 merge 两个分支 branch,以 master 分支合并到 main 为例

  1. 首先确认 master 分支的内容已经被push到了远程仓库中
  2. git checkout main 检出main分支
  3. git merge master 使用merge来合并master到main分支上
  4. 如果step 3存在冲突,请使用 git status git mergetool 来查看冲突并手动解决冲突。
  5. git add . 添加所有文件
  6. git commit -m "Merge master into main” commit你的合并操作
  7. git push origin main 将main推送到远程仓库中

如何创建新的分支 branch 并且切换到新的分支,push到新分支

  1. 创建新的分支: git branch <branch_name>
  2. 创建新分支后,你可以使用以下命令来切换到新分支:git checkout <branch_name>
  3. 如果内容已经add,commit之后,需要push:git push origin [branch name]

如何查看/添加/清除 staging area 的内容

  1. 查看
    1. 显示当前暂存区和工作区的状态:git status --short 可以查看M或者A的状态。
    2. 查看某个特定文件在暂存区中的更改:git diff --staged <filename> 这个命令将显示这个文件在暂存区中与上一次提交的版本之间的差异。
  2. 添加
    1. 添加单个文件:git add <filename>
    2. 添加多个文件:git add <filename1> <filename2> …
    3. 添加整个目录:git add <directory>
    4. 添加所有更改:git add .
  3. 清理
    1. 清理所有文件:git reset 可以将所有文件从暂存区域中移除,不会影响文件内容。
    2. 清理部分文件:git rm --cached <filename>

如何 push 本地分支到 remote repo,在远程分支和本地分支历史不同的情况下,以master分支为例

  1. git pull origin master --allow-unrelated-histories 执行这个命令后,Git 将尝试将两个不同的历史记录合并在一起,并提示您解决任何冲突。完成合并后,您可以使用 git push命令将更改推送到远程仓库中。
  2. 然后就可以push到远程仓库中:git push origin master

如何修改git里面的 username

  1. 查看: git config --global user.name
  2. 修改: git config --global user.name "Iris1e27"

如何恢复到之前的提交 git reset 和 git revert

  1. 某个方法:
    1. 使用 git log 查看提交历史,找到你要撤销的提交的commit id。例如最后一次提交的id是abc123。
    2. git reset --soft HEAD~1git reset --soft abc123 --soft参数会保留工作区的修改,不会撤销工作区的代码更改。
    3. git commit -m "New commit message"
    4. git push -f origin <branch-name> -f参数会强制推送,覆盖远程分支。
  2. 应该是不止一个方法,欢迎补充。
  3. git reset 和 git revert 的区别

    git reset 会撤消直到指定的 commit ID 的状态的改动。例如,恢复到第二个 commit ID 的状态将撤消改动,并将文件的状态保持为第二个 commit 的状态。

    git revert 将撤消到指定的 commit ID 之前的状态。例如,还原到第二个 commit ID 将撤销更改,并将文件的状态保留为第二个 commit 之前的 commit 的状态——第一个 commit。

  4. 何时使用 git reset 和 git revert

    当你在本地仓库上工作时,如果变化尚未被远程推送,你应该使用 git reset。这是因为在从远程仓库拉取修改后运行该命令会改变项目的 commit 历史,导致在该项目上工作的每个人发生合并冲突。

    当你意识到对某一本地分支所做的修改应该在其他地方时,git reset 是一个不错的选择。你可以重置并移动到想要的分支,而不会丢失你的文件修改。

    对于恢复推送到远程仓库的改动,git revert 是一个很好的选项。因为这个命令会创建一个新的提交,而不会改变其他人的提交历史。

如何丢弃本地提交,直接指向GitHub的最新提交

  1. git fetch origin
  2. git reset --hard origin/<branch-name> --hard参数会重置本地内容,丢弃本地没有的提交

如何

如何