本文记录Git常用命令。

1 查询命令

1
2
3
git status # 查看当前git状态
git log    # 查询修改记录
git tag -l # 查询tag

2 代码下载上传

1
2
3
4
5
6
7
# down load source code
git clone -b main git@github.com:alvincat/MyGithubWebsite.git MyWebsite

git submodule update --recursive # update submodule
git push 
git pull
git push --set-upstream origin gh_pages # upload new branch

3 分支相关操作

1
2
3
4
5
6
git branch # 查看本地所有分支
git branch | grep "*"  #查看当前分支
git checkout branch_name # 切换分支
git checkout -b gh_pages # create branch
git branch -D gh_pages   # 删除本地分支
git push origin --delete main  # 删除远端分支

4 修改相关操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
git commit -m ""     # add commit
git add file1 file2  # add to local cache

git stash     # 暂存当前修改
git stash pop # 恢复暂存内容

git reset --hard origin/master # 强制更新当前分支代码为master分支
git reset --mixed commit_id    # 将制定commit_id以后的提交回退至未提交
git rebase -i head~2

git cherry-pick commit_id

5 远程仓库操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 查询本地关联的代码仓
git remote -v

# 添加远程分支, 其中origin为远程代码仓在本地的name, 本地代码可以关联多个远程代码仓
git remote origin  https://github.com/olOwOlo/hugo-theme-even
git remote add myEvenBackup git@github.com:alvincat/HugoThemeEven.git

# 提交代码时可以指定代码仓进行
# 提交代码至https://github.com/olOwOlo/hugo-theme-even的master分支
git push -u origin master
# 提交代码至git@github.com:alvincat/HugoThemeEven.git的master分支
git push -u myEvenBackup master

6 gitignore的用法

git在提交代码时,存在部分本地生成的和代码无关的文件,不需要提交。这种文件或者目录就需要使用gitignore的机制进行过滤。使用方法如下:

  1. 在代码根目录创建文件.gitignore
  2. 在文件中添加需要过滤的文件和目录,注意若要过滤整个目录,需要在目录后跟/

常见情况解决方法:

  1. 添加到.gitignore文件中的目录,再次提交后并未生效。解决方法,执行代码:git rm -r --cached <folder>