git 的使用,及其基本指令。
(1) 初始化本地仓库:
- git init
(2) 配置用户名和密码:
- git config user.name “zzq”
- git config user.email “123@qq.com”
(3) 配置全局的用户名和密码:
-
git config --global user.name “zzq”
-
git config --glabal user.email “123@qq.com”
-
global 表示在当前机器中所有的git仓库中都生效
(4) 删除配置
- git config --unset user.name
- git config --unset user.email
(5) 删除全局配置
- git config --global --unset user.name
- git config --global --unset user.email
(6) 列出当前本地仓库中的所有配置项
- git config -l
修改:创建,删除,修改。
git 追踪管理的其实是修改,而不是文件。
(7)三板斧(add, commit, push)
- git add . ——从本地工作区添加到暂存区
- git status ——查看提交状态
- git commit -m “提交日志信息” ——从暂存区添加到版本库
- git push ——从版本库添加到远程仓库
(8)查看日志
-
git log ——查看所有日志
-
git log --pretty=oneline ——日志按一行打印
-
git cat-file -p [commitID] ——打印commitID对应的文件
(9)查看目前暂存区和工作区文件的差异
- git diff [filename]
- git diff HEAD --[filename] ——查看版本库和工作区文件的区别
(10)版本回退
- git reset [–soft | --mixed | --hard] [HEAD]
- 本质回退的是版本库中的内容,还可以回退到当前版本。
- –soft 只回退版本库的内容
- –mixed (默认) 回退版本库和暂存区的内容
- –hard(慎用) 版本库,暂存区,工作区全部回退
工作区 | 暂存区 | 版本库 | 选项 | 描述 |
---|---|---|---|---|
git world | git world | git world | 源 | |
git world | git world | git | –soft | 只回退版本库 |
git world | git | git | –mixed(默认) | 回退版本库和暂存区 |
git | git | git | –hard(慎用) | 全部回退 |
- git reflog (后悔药)——查看所有的提交记录
(11)撤销
工作区 | 暂存区 | 版本库 | 描述 | 如何撤销 |
---|---|---|---|---|
xxx code | 只在工作区写,没有add 和commit | git checkout --[filename] | ||
xxx code | xxx code | add, 但没有commit | git reset | |
xxx code | xxx code | xxx code | add + commit | 1. 大前提条件, 都没有push到远程仓库2.git reset |
-
git checkout – [filename]
-
git reset --mixed HEAD [filename] ——回退到当前版本
-
git reset --mixed HEAD**^** [filename] ——回退到上一个版本
(12)删除文件
-
git rm [filename] ——删除工作区和暂存区的文件
-
git commit -m “xxxx”
(13)分支管理
-
git branch ——查看所有分支
-
git branch dev —— 创建dev分支
-
git checkout dev ——切换到dev分支
-
git merge dev ——将dev分支合并到当前分支
-
git branch -d dev ——删除dev分支
-
git branch -D dev ——强制删除dev分支
-
git checkout -b dev1 —— 创建并切换到dev1分支
(14)合并冲突
-
合并冲突需要手动解决,并且要进行一次add和commit。
<<<<<<<HEAD ....// 这之间的是当前分支的内容 ======= ....// 这之间的是dev分支的内容 >>>>>>>dev
-
git log --graph --abbrev-commit ——以图示打印
-
git merge --no-ff -m “这是最新一次提交的日志” dev ——(–no-ff)表示不使用fastforword,让合并时产生一次新的提交记录
fast forword看不出来最新的提交到底是merge进来的还是正常提交的
no-ff 表示不使用fast forword
-
git merge --no-ff -m “让ff变成no-ff” dev ——在合并分支时,手动将fast forword变成no-ff
(15)Bug分支
-
git stash ——将本分支新增的内容暂存,并使还原到上次commit 的地方。前提是:本分支新增的内容还未commit提交。
-
git stash list —— 查看暂存的内容
-
git stash pop —— 回复暂存的内容
(16)远程操作
-
git 是分布式版本控制系统
-
git remote -v ——查看有哪些权限,比如fetch拉取权限和push推送权限
origin 远程仓库默认的名字
(16)使用SSH协议克隆到本地仓库
- 创建SSH key。在主目录下看看是否有.SSH目录,如果有再看看这个目录下有没有id_rsa(私钥),id_rsa.pub(公钥)这两个文件,如果有了直接跳到下一步,没有则需要创建SSH key:
- ssh-keygen -t rsa -C “1234@qq.com”。 再一路回车使用默认值即可
(17)push(推送) 和 pull(拉取)
- git push origin master:master —— origin表示远程,第一个master表示本地分支的master,第二个表示远程的master。
- git pull origin masert:master —— origin 表示远程,第一个master表示远程分支的master, 第二个表示本地的master.
- pull 指令表示将远程从库的内容拉取到本地,并与本地分支合并。pull : 拉取+合并。
(18)配置git, .gitignore文件
-
.gitignore 文件里面写要忽略的文件名。
-
*.so, *.init 表示再add时,忽略以.so和.init 为后缀的文件。
-
git add -f test.so ——强制添加test.so 文件
-
不建议强制添加。应该在文件里添加 !test.so即可,表示不忽略test.so 这个文件。
-
git check-ignore -v d.so —— 查看为什么d.so文件会被忽略。
-
git config --global alias.st ‘status’ —— 给 status 取别名为st 。
-
git log --pretty=oneline --abbrev-commit —— (–pretty=oneline)表示打印一行,(–abbrev-commit)表示打印出短的commitID。
(19)标签
-
标签是对commit ID 做别名。
-
git tag [tag_name] —— 在当前分支上给最新一次commit打标签。
-
git tag [标签名] [commit ID] —— 给指定commit ID 打标签。
-
git tag -a v1.0 -m “描述信息” —— 给标签加描述信息。
-
git show [标签名] —— 查看标签的描述信息。
-
git tag ——显示所有标签。
-
git tag -d [标签名] —— 删除标签
(20)推送标签
- git push origin v1.0 —— 将本地的v1.0 标签推送至远端。
- git push origin --tags —— 推送本地所有标签。
- git push origin:v1.0 —— 先在本地删除v1.0 标签,在执行该指令,使远端也删除该标签。
(21)多人协作开发
-
git branch ——查看本地分支
-
git branch -r(remote) —— 查看远程分支
-
git branch -a(all) —— 查看本地和远程的所有分支
-
git checkout -b dev origin/dev —— 建立本地dev分支,并和远程dev分支建立连接。
-
git branch -vv —— 查看本地和远程分支建立的连接。
-
建立连接的目的是为了能够使用简短的指令。
-
git push origin:master --> git push
-
git branch --set-upstream-to=origin/dev dev —— 将远程的dev分支和本地的dev分支建立连接。文章来源:https://www.toymoban.com/news/detail-848291.html
-
git push origin “分支名” —— 远程没有该分支,本地创建并推送。文章来源地址https://www.toymoban.com/news/detail-848291.html
(22)git pull
- 拉取分支的内容
- 拉取仓库的内容,如:本地没有的分支等。
- git remote show origin —— 查看远程分支的情况。
- 在远程删除了某些分支,但本地仍然可以看到,解决办法:
- git remote prune origin —— 修剪在远端已经不存在的分支。
(23)合并分支
- 如何将dev分支 合并到 master分支?(建议)
- 建议先在dev分支下,合并master。有冲突再解决。
- 再回到master分支,合并dev。
到了这里,关于git 的使用,及其基本指令。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!