工作中常用的Git命令

342 阅读2分钟

本文主要介绍了本人在开发过程中经常使用的一些git命令,基本满足了日常开发的需求。 (介绍顺序是按照自己需求来的,如引起观看不适,请见谅)

有如果需要更高级的git 操作,建议参考

  1. git-scm.com/book/zh/v2/
  2. gitbook.liuhui998.com/index.html

注:下面代码块中的 ${variableName} 表示这里你可以根据情况替换成你本地的分支名、文件名等,不需要${}

  1. git下载后的配置
git config --global user.name "duosl" # 设置本地git的用户名
git config --global user.email "duosl@xx.com" # 设置本地git邮箱地址
  1. 获取远程仓库的代码
git clone https://github.com/xxx/gitTest.git # 通过http方式克隆
git clone git@github.com:Duosl/gitTest.git # 通过SSH方式克隆,需要特殊的配置
  1. 查看本地文件修改状态
git status # 该命令会列出那些文件被修改 绿色文件名:文件已被添加到暂存区, 红色文件名: 文件还没有被添加到暂存区需要通过add命令添加
git diff [filePath] # 查看当前修改内容与之前版本的不同(这部分建议使用IDE的工具,更加直观)
  1. 提交代码到远程分支
# 1. 将文件添加到暂存区
git add ${fileName1}, ${fileName2} # 将某个文件添加到暂存区,支持一次性添加多个文件,或者目录
git add . 或者 git add --all # 将工作目录的所有修改文件添加到暂存区
git reset HEAD ${fileName} # 将特定文件从暂存区拿出来

# 2. 将暂存区文件提交到本地分支
git commit -m "commit message"

# 3. 将本地分支代码提交到远程分支
git push origin ${localBranchName}:${remoteBranceName} # 远程分支名可被自动创建

--------------------------------
# 4.强制提交
# 使用场景:当我们不希望commit过多,或者希望当前的修改可以跟上一个commit合并时使用。 需要特别注意的是:该方法只是覆盖上一次的commit
git add .
git commit --amend # 该命令会跳转到commit信息修改,我们修改后保存退出即可
git push origin ${localBranchName}:${remoteBranceName} -f # 如果我们上一次的commit已经push到远程分支,则必须使用 -f 或者 --force选项强制提交,如果上一次commit没有push到远程分支,则可以不需要 -f
  1. 本地版本回退
git log # 查看提交的commit记录
git reset ${commitid} # 将代码回退到某个commit记录的位置

# 此为默认方式,不带任何参数的git reset,即是这种方式,它回退到某个版本,只保留源码,回退commit和index信息。 
git reset –mixed ${commitid}

# 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可。 
git reset –soft ${commitid}

# 彻底回退到某个版本,本地的源码也会变为上一个版本的内容。 
git reset –hard ${commitid}
  1. 分支管理
git branch # 列出本地所有的分支
git branch -a # 列出所有的分支(包括远程分支)
git branch ${branchName} # 以当前分支为基础,新建一个本地分支
git checkout ${branchName} # 切换的指定分支
git branch -d ${branchName} # 删除某个特定分支

git checkout -b ${branchName} # 以当前分支为基础,新建并切换到新分支

git merge ${branchName2} # 将branchName合并到当前分支

#查看分支所关联的远程分支的信息
git branch -vv
git remote show origin
cat .git/confif
# 设置本地分支 localBranchName 所关联的远程分支
git branch --set-upstream-to=origin/${remoteBrancName} ${localBranchName}
  1. tag管理(打标签)
git tag # 列出本地所有的tag
git tag ${tagName} # 以当前分支最新的commit为基础打一个tag(轻量标签)
git tag -a ${tagName} -m tag message" # 创建一个附注标签
git tag -d ${tagName} # 删除本地特定的tag
git push origin ${tagName} # 将特定tag push到远程仓库

git pull/fetch origin tag ${tagName} # 检出远程分支的tag
git checkout -b ${branchName} ${tagName} # 创建一个以 tagName 代码为基础的分支

更多关于tag的操作参考:git-scm.com/book/zh/v2/…

  1. Git Stash
git stash save ${stashName} # 将本地工作目录修改的文件贮藏起来
git stash list # 查看所有的贮藏

# stashIndex可省略,默认删除最后一个;stashIndex可从git stash list查看
git stash apply ${stashIndex} # 恢复到指定stash
git stash drop ${stashIndex} # 删除特定stash,
git stash pop ${stashIndex} # 恢复并删除特定stash,

更多关于Git Stash操作参考:git-scm.com/book/zh/v2/…

  1. 空项目push到远程仓库
git init
git add .
git commit -m "Initial Commit"
git remote add origin https://github.com/xxx/gitTest.git
git push origin master