Git学习 —— Git的常用命令
环境配置命令
- 安装git后首先要设置用户名称和email地址: git config --global user.name “test” git config --global user.email “test@163.com”
- 查看配置信息: git config --list git config user.name git config user.email
- 通过上述命令设置的信息会保存在 ~/.gitconfig文件中
获取Git仓库
-
本地初始化git仓库 git init 从远程仓库克隆 git clone 仓库地址
工作目录、暂存区和版本库的概念
-
版本库: 获取git仓库之后看到的.git文件,其实就是版本库。版本库中存储了很多配置信息、日志信息和文件版本信息等 工作目录(工作区): 包含.git文件夹的目录就是工作目录,主要用于存放开发的代码 暂存区: .git文件夹中有很多文件,其中的一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。
Git工作目录下文件的两种状态
** Git工作目录下文件存在两种状态 **
-
untracked 未跟踪(未被纳入版本控制) tracked 已跟踪.(被纳入版本控制) Unmodifined:未修改状态 Modified:已修改状态 Staged:已暂存状态
查看文件状态命令:git status, git status -s 命令更加简洁
本地仓库操作
-
将文件添加到暂存区(设置为被跟踪状态):git add file 将文件移除暂存区(设置为未跟踪状态):git reset HEAD file 将暂存区的文件修改提交到本地仓库:git commit - m "修改说明" 将工作区文件删除:git rm file(默认会执行add,进入暂存区,没有commit之前可以撤回) 将文件添加至忽略列表:可以创建一个名字为.gitignore的文件(文件名称固定),列出要忽略的文件格式。
-
查看日志记录:git log,使用 ":q"退出查看
远程仓库的使用
-
查看远程仓库 git remote -v 显示当前连接的远程仓库信息。 git remote show origin 显示远程仓库更加详细的信息。 添加远程仓库 git remote add <简称> <url 远程仓库地址> 从远程仓库克隆 git clone <url 远程仓库地址> 移除无效的远程仓库 git remote rm <仓库简称> 只是从本地移除远程仓库的记录,并不会真正的移除远程仓库。 从远程仓库中抓取和拉取 1、 抓取:git fetch origin master, 从远程仓库获取最新版本到本地仓库,不会自动merge。 2、手动合并:git merge <分支 如:origin/master> 3、拉取:git pull <分支 如:origin/master>,等于 git fetch + git merge的效果,会自动merge 注意:使用git pull命令时,如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时拉取文件时会报错。 解决办法:在git pull 命令后加入参数 – allow -unrelated -histories 推送到远程仓库 git push origin master 添加到暂存区并提交: git commit -a -m "日志信息"
分支
-
查看分支 列出所有本地分支: git branch 列出所有远程分支: git branch -r 列出所有本地分支和远程分支: git branch -a 创建分支 git branch 分支名称 切换分支 git checkout 分支名称 推送至远程仓库分支 git push origin 分支名称 合并分支 在master分支下执行:git merge 分支名称 注意:合并可能会产生冲突,如果产生了冲突,需要手动修改冲突的文件,然后通过git add + git commit 提交修改后的冲突文件。 删除分支 删除本地分支:git branch -d b1 注意:如果要删除的分支用友开发动作,那么上面的命令会删除失败,如果要继续删除则将-d改为-D即可 删除远程分支:git push origin -d 分支名称
标签
-
列出已有标签
- 列出所有标签:git tag
- 查看tag信息:git show 标签名
-
创建新标签 git tag 标签名 将标签推送至远程仓库 git push origin 标签名 检出标签 一般会创建一个新的分支,执行某个tag git checkout -b 分支名 标签名 删除标签
- 删除本地标签:git tag -d 标签名
- 删除远程标签:git push origin :refs/tags/标签名
