-
1 Windows下安装Git
- Git - 安装 Git 下载地址
- Git - Downloading Package Windows下载地址
- 使用 git version 命令查看是否安装成功
2 Git基本配置
系统配置(对所有用户适用) 使用 git config --system就是读取这个文件
用户配置(只适用于该用户) 使用 git config --global读取存放在用户目录下的文件
仓库配置(只对当前项目有效) 就是工作目录下 .git/config文件,使用 git config --local读取文件
注意:每一级别的配置都会覆盖上层的相同配置,级别高低仓库级别最高,系统级别最低
2.1 配置个人身份
git config --global user.name "Zhang San"
git config --global user.email "Zhangsan@..."
2.2 文本编码配置
#中文编码支持
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
#显示路径中的中文
git config --global core.quotepath false
2.3 与服务器的认证配置
两种协议认证方式
1.http/https协议认证
设置口令缓存
git config --global credential.helper store
添加HTTPS证书信任:
git config http.sslverify false
2.ssh协议认证
ssh协议是一种非常常用的Git仓库访问协议,使用公钥认证、无需输入密码,加密传输,操作遍历又保证安全性。
ssh配置过程
首先在Git Bash中输入命令 ssh-keygen -t rsa -C zhangsan@... 用来生成公钥(生成的id_rea.pub文件里面的内容就是公钥),之后添加公钥到代码平台 1.登录代码平台 2. 进入“Profile Settings” 3 点击左侧栏的"SSH Keys" 4点击“Add SSH Key”,将刚生成的公钥文件内容复制到“Public Key”栏,点击保存
3 Git版本控制的三个工程区域和文件状态
3.1工程区域
1.版本库(Repository)也叫做本地仓库,在工作区中又一个隐藏目录.git,就是GIT的版本库,用来存放和管理工程中所有版本数据。
2.工作区(Working Directory)日常工作的代码文件或者文档所在文件夹。
2.暂存区(stage)一般存放在工程根目录.git/index文件中,所以暂存区也叫做索引(index)。
3.2 文件状态
1.已提交(committed)该文件已经被安全地保存在本地数据库中了(使用了git add 之后再使用git commit -m命令之后的状态)
2.已修改(modified)修改了某个文件,但是还没有保存(没有使用git add命令)
3.已暂存(staged)把已经修改的文件放在下次提交时保存的清单中(使用git add 命令之后的状态)
4 常用Git命令
工程准备
工程克隆——git clone(如果项目服务器支持git-lfs,对二进制文件进行了区别管理,克隆时使用git lfs clone,否则克隆时无法下载到工程中的二进制文件,导致工程内容不完整)
初始化仓库——git init +仓库名 会在当前文件夹下生成一个指定仓库名的文件夹,然后在该文件夹下会生成一个.git的文件夹
查看工作区
查看工作区的修改内容——git diff(在diff 后面加--name-status参数,只会显示修改文件名列表,还有其他参数 -p/ --pretty/ --graph)
查看工作区文件状态——git status
文件修改后提交推送
新增/删除/移动文件到暂存区——git add/git rm/git mv
提交更改的文件——git commit(git commit file_name -m "commit message" ,使用 git commit -amend可以修改上一次提交文本的信息)
推送到远端仓库——git push(git push origin branch_name,这个branch_name决定了你的本地分支推送成功之后,在远端服务器上的分支名,其他人可以获取该分支上的改动内容;你的本地分支名可以与推送到远端的分支名不同时,git push origin branch_nam:new_branch_name;windows下分支名大小写不区分)
查看日志
查看当前分支上的提交日志——git log
分支管理
列出本地分支——git branch(git branch -r查看远端分支,查看本地和远端使用git branch -a)
新建分支——git branch(新建分支之后不会切换到新分支)/git checkout -b(新建分支后会自动切换到新分支)
删除分支——git branch -d branch_name(git branch -D表示强制删除分支,删除后需要推送远端git push origin:branch_name)删除远端服务器分支(git branch -d -r branch_name)
切换分支——git checkout branch_name(git checkout -f强制切换)
更新分支(自动合并)——git pull(具体命令 git pull origin remote_branch:local_branch,如果远程指定的分支与本地指定的分支相同,则可以直接执行 git pull orign remote_branch)
更新分支(不合并)——git fetch(从远端服务器中获取某个分支的更新到本地仓库,与git pull不同的是,git fetch获取更新之后不会进行合并,需要进行手动合并使用git merge;具体命令 git fetch origin remote_branch:local_branch,如果远程指定的分支与本地指定的分支相同,则可以直接执行 git fetch orign remote_branch)
合并分支——git merge branch_name
撤销操作
强制回退到历史节点——git reset commit_id(上一条提交记录,还有三个参数 --mixed/hard/soft)
回退本地所有修改而未提交的——git checkout -filename(git checkout . 这个就是用于回退本地所有修改而未提交的文件内容,很危险;git checkout commit_id可以回退到某个版本)
分支合并
合并目标分支内容到当前分支——git merge branch_name/git rebase branch_name