git的常用命令

Git作为大家熟悉的,深受欢迎的版本控制工具,在多人协作开发的项目中,起到了很好的作用。

使用Git,首先要先下载安装,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

安装完成后在桌面界面点击鼠标右键,会出现如下界面:

git的常用命令

然后点击 Git Bash Here,会弹出一个类似命令行窗口的,就说明Gti安装成功了。

安装完成后,还需要进一步做一下环境配置,在命令行输入(如果没有Github账号,要先注册一个):

git config --global user.name "username"        // "username" 账户名

git config --global user.email ""          // "" 注册账号时用的邮箱

以上命令执行结束后,可以使用:

git config --global --list 查看配置的用户名和邮箱

一、创建代码库

  git init 在当前目录初始化新建一个git代码库

  git clone <url> 克隆下载远程仓库的代码

二、修改和提交

git status 查看工作区代码状态(是否修改)

git diff 对比查看暂存区和工作区的变更内容

git add . 添加所有改动过的文件到暂存区

git add <filename> 添加指定文件到暂存区

git rm <filename> 删除文件

git commit -m "commit message" 暂存区文件提交到本地仓库区

命令执行成功后会提示2 files changed, 7 insertions(+), 5 deletions(-) 2个文件被改动,插入了7行内容,删除了5行内容

git commit <filename1> <filename2>... -m "commit message" 提交暂存区的指定文件到仓库区

git stash 将所有未提交的修改(工作区和暂存区)暂存在堆栈中

三、查看信息

git config --list 显示当前的git配置

git config --global --list 查看提交时的用户信息

git log 显示从最近到最远的提交日志,以便确定要回退到哪个版本

git log - p <filename> 查看指定文件的提交历史

git reflog 查看命令历史,以便确定要回到将来的哪个版本

git stash list 查看当前stash中暂存内容

git stash pop 将当前 stash 中的内容恢复到当前工作区,并从堆栈中删除

四、撤销

git reset --hard HEAD 撤销工作目录中所有未提交的文件的修改内容

git reset --hard HEAD^ 将当前版本回退到上一个版本

git reset --hard HEAD^^ 回退到上两个版本

git reset --hard <commit_id> 回退/向前进到指定commit码的版本(commit_id通过git log查看)

git checkout HEAD <filename> 撤销指定的未提交文件的修改内容

git checkout -- <filename> 还没有使用git add 添加到暂存区时,撤销filename文件在工作区的全部修改

git reset HEAD <filename> + git checkout -- <filename> 撤销暂存区的修改重新放回工作区,然后再丢弃工作区的修改

五、分支

git branch 显示所有本地分支,带有*号表示当前分支

git branch -r 显示所有远程分支

git branch <new branch> 创建一个新分支

git branch -d <branch> 删除本地分支

git switch <branch> 切换分支

git switch -c <branch> 创建并切换分支

git checkout <branch> 切换到指定分支,同git checkout -- <filename> 容易混淆,建议使用 git switch

git checkout -b <branch> 新建一个分支,并切换到该分支,等价于

git branch <new branch> 创建分支 + git checkout <branch> 切换分支

git push origin <branch> 将当前分支推送到远程仓库,如果分支不存在则会被创建

git push origin HEAD --force 强推到远程

git push origin --delete <branch> 删除远程分支

六、合并

git merge <branch> 合并指定分支到当前分支,比如 login 分支合并到 master 分支:

  git checkout master 切换到 master 分支 + git merge login 合并

  如果合并时存在冲突,需要手工修改。

七、远程操作

git remote -v 查看所有远程版本库信息

git fetch 从远程版本库拉取最新代码

git pull 拉取最新代码并直接合并

git push 上传本地代码到云端仓储并直接合并