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 上传本地代码到云端仓储并直接合并