安装
在本机安装git客户端,下载地址:https://git-scm.com/downloads,根据本机的操作系统选择git版本。
本地仓库
本地仓库又叫本地版本库,即被git管理起来的本地目录,在此目录下有名为 .git
的隐藏目录。git 能够跟踪此目录中所有文件的修改、删除,以便追踪历史或还原版本。
一、创建本地仓库
- 打开目录,单击鼠标右键,点击
Git Bash Here
- 在 git bash 命令行中输入
git init
,回车,提示Initialized empty Git repository in C:/xx/.git/
- 当前目录下生成
.git
隐藏目录,本地仓库创建成功
二、工作区
在本地仓库中,我们能够看到的就是工作区
三、暂存区
暂存区保存的是从工作区提交的内容,通过 git add .
或 git add filename
命令来完成提交。既然是暂时存放,最终会通过 git commit -m "v1.0"
命令,将暂存区的内容提交为本地仓库的一个版本。
git ls-files 显示暂存区中的文件
git ls-files -s 显示文件对应的Blob对象,通过Blob对象可查看文件内容
git ls-files -s file
git cat-file -p Blob对象名称 通过Blob对象查看文件内容
git rm --cached file 将文件从暂存区中移除
四、版本区
git log 查看本地当前分支commit日志
git log --stat 查看每个commit的差异
git log | grep "msg" 查看本地当前分支包含“msg”的commit日志
git log BranchName | grep "msg" 查看本地指定分支包含“msg”的commit日志
git show commitId 查看commit内容
git show BranchName commitId 查看本地指定分支commit内容
git log origin/BranchName | grep "msg" 查看远程指定分支包含“msg”的commit日志
五、查看各区不同
git status 查看工作区和暂存区的状态
git diff 查看工作区和暂存区的不同
git diff --staged 查看暂存区和版本区的不同
git diff HEAD -- file 查看工作区与版本区不同
远程仓库
GitHub是一个面向开源及私有软件项目的托管平台,Gitlab是企业内部搭建的代码仓库。
一、本地仓库和远程仓库进行关联
执行以下命令可将本地仓库与远程仓库进行关联
git remote add origin http://xxx/zwopen/season.git
git remote add origin ssh://git@xxx/zwopen/season.git
关联后遇到的问题:执行
git pull origin master
失败,提示:fatal: refusing to merge unrelated histories
原因:虽然本地仓库和远程仓库进行了关联,但仍是两个独立的仓库
解决:执行git pull origin master --allow-unrelated-history
,合并两个独立的仓库即可
git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master:master # 将本地仓库推送到远程仓库
二、克隆远程仓库
上面提到的先创建本地仓库,再把本地仓库和远程仓库关联的方式,在实际开发中很少用到,更多是先克隆远程仓库。
git clone http://xxx/QA/qa.git
三、推送远程分支
git push --set-upstream origin yourname
版本回退
git checkout . 还原工作区所有文件的修改
git checkout -- file 还原工作区指定文件的修改
注意:
文件未提交到暂存区,git checkout
撤销修改回到和版本库一样的状态
文件已提交到暂存区且又做了修改,git checkoug
撤销修改回到添加到暂存区后的状态
git reset HEAD^ 暂存区和版本区还原到上一次commit节点,所有差异存入工作区
git reset --hard HEAD 擦除工作区和暂存区所有修改
git reset --hard branch 将HEAD指向其他分支
git reset --soft HEAD 工作区不变,撤销版本区所产生的差异存入暂存区
git reflog 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git reset --hard commitId 通过git reflog找到reset的commitId,再用git reset恢复之前撤销的内容
git reset --hard 标签名
分支管理
git checkout -b dev 创建并切换到新分支
git merge dev 把dev合并到当前分支
git branch 查看本地分支
git branch -a 查看本地和远程所有分支
git branch -r 查看远程分支
git branch -d 分支名 删除分支
标签管理
git tag
git tag 标签名
git tag commitId 标签名
git config
git config --list
git config --local -l
git config --global -l
git config --system -l
git config --local -e 编辑仓库级别配置文件
git config --global -e 编辑用户级别配置文件
git config --system -e 编辑系统级别配置文件
参考文章
https://www.jianshu.com/p/c2ec5f06cf1a
https://www.liaoxuefeng.com/wiki/896043488029600
https://baijiahao.baidu.com/s?id=1623254575291831567&wfr=spider&for=pc
网友评论