一、安装配置Git(系统:Windows 10 64位) 1.移步Git官网下载安装。 2.每个仓库的Git配置文件为.git/config文件,当前用户的Git配置文件为用户主目录下的.gitconfig文件。运行"Git->Bash",可进行以下配置:(--global表示这些命令在这台电脑的所有Git仓库下都有用,不加则只针对当前仓库起作用)

$ git config --global user.name <"your name"> #指定用户名
$ git config --global user.email <"email@example.com"> #指定email地址
$ git config --global color.ui true # 让Git适当地显示不同的颜色

3.忽略文件 需要忽略的文件一般是放在Git工作目录且不能提交的文件,包括操作系统自动生成的文件,编译生成的中间文件、可执行文件等,自己的带有敏感信息的配置文件等。 此时要在Git工作区的根目录下创建一个.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。GitHub已经为我们准备了各种配置文件,只需要组合一下就可以编写.gitignore文件。

$ vim .gitignore # 创建.gitignore文件(类Linux)
$ git add -f <file_name> # 强制添加已忽略的文件
$ git check-ignore -v <file_name> # 检查.gitignore对该文件的忽略规则

4.配置别名

$ git config --global alias.<alias> <command_name>
$ git config --global alias.<alias> <'command_phrase'> 

设置完之后可以直接使用 git <alias> 操作。 删除别名可以通过修改配置文件的[alias]字段。


二、创建版本库(Repository) 1.创建一个空目录来存放版本库:

$ mkdir <catalog_name>
$ cd <catalog_name>

2.使用Git初始化版本库

$ git init

3.把文件添加到版本库中(首先确保该文件在版本库所在的目录下)

$ git add <file1_name>
$ git add <file2_name> <file3_name> # 把要提交的所有修改放到暂存区(Stage/Index)
$ git add <catalog_name>/* .<type> # 添加指定目录下所有(指定类型)的文件
$ git add --all # 添加当前目录下所有文件
...
$ git commit -m <"message"> # 一次性把暂存区的所有修改提交到分支

三、版本管理

$ git status # 查看工作区当前的状态
$ git diff # 查看具体修改的内容
$ git reset --hard <commit_id> # 根据前几位版本号回退到指定版本,其中HEAD表示当前版本
$ git log # 查看提交历史,以便确定要回退到哪个版本
$ git reflog # 查看命令历史,以便确定要回到未来的哪个版本
$ git checkout -- <file_name> # 撤销工作区的修改;把误删的文件恢复到最新版本(用版本库的版本替换工作区的版本)
$ git reset HEAD <file_name> # 撤销暂存区的修改
$ git rm <file_name> # 从版本库中删除该文件

四、使用Github管理Git远程仓库 1.创建SSH密钥:

$ ssh-keygen -t rsa -C <"email@example.com">

生成的私钥和公钥分别保存在用户主目录里的.ssh目录的id_rsa和id_rsa.pub两个文件中。 2.登陆GitHub,Settings->Add SSH Key->在Key文本框里粘贴id_rsa.pub文件的内容->Add Key。 由于Git支持SSH协议,这样GitHub可以通过你的公钥确认只有你自己才能推送并识别出你推送的提交确实是你推送的。 3.Create a new repo->填写Repository name->Create repository,创建一个新的Git仓库。

$ git remote add origin git@github.com:<github_account>/<repository_name>.git #  将本地库与远程库关联起来(使用ssh支持的git协议,速度较快)
$ git remote add origin https://github.com/<github_account>/<repository_name>.git #  将本地库与远程库关联起来(使用https协议)
$ git push [-u] origin master # 把本地库的所有内容推送到远程库上(-u表示第一次推送,远程仓库的默认名称为origin)
$ git clone git@github.com:<github_account>/<repository_name>.git # 克隆一份远程库到本地

4.多人协作的工作模式

$ git remote [-v] # 查看远程库信息(-v显示可以抓取和推送的origin地址)
$ git checkout -b <branch_name> origin/<branch_name> <branch_name> # 在本地创建和远程分支对应的分支
$ git branch --set-upstream-to=origin/<branch_name> # 建立本地分支和远程分支的关联
$ git push origin <branch_name> # 从本地推送分支(若推送失败,则需先抓取远程的新提交)
$ git pull # 抓取远程库中的最新提交(进行合并,若有冲突先解决冲突再重新推送)

5.参与开源项目 开源项目仓库->"Fork"即克隆到自己账号下->“git clone”克隆到本地->修改推送到自己的远程库->发起pull requset等待开源项目库接受


五、分支管理

$ git branch # 查看分支
$ git branch <branch_name> # 创建分支
$ git checkout <branch_name> / git switch <branch_name> # 切换分支
$ git checkout -b <branch_name> / git switch -c <branch_name> # 创建并切换分支
$ git merge [--no-ff -m <"message">] <branch_name> # 合并某分支到当前分支(--no-ff表示禁用Fast forward模式,在这种模式下删除分支会丢掉分支信息,禁用后从分支历史上可以看出分支信息)
$ git branch -d <branch_name> # 删除分支(若该分支未被合并会报错)
$ git branch -D <branch_name> # 强制删除分支
$ git log --graph [ --pretty=oneline --abbrev-commit] # 查看分支合并图
$ git stash # 保存当前工作现场
$ git stash list # 查看保存的工作现场列表
$ git stash apply [stash@{<stash_id>}] # 恢复工作现场但不删除stash内容(默认恢复0号stash,也可根据stash_id恢复指定的stash)
$ git stash drop # 删除stash内容
$ git stash pop # 恢复工作现场并删除stash内容
$ git cherry-pick <commit_id> # 复制特定的提交到当前分支
$ git rebase # 把本地未push的分叉提交历史整理成直线

当Git无法自动合并分支时,就必须先解决冲突,即把Git合并失败的文件手动修改为希望提交的内容,再提交,合并完成。


六、标签管理

$ git tag # 查看所有标签
$ git tag [-a] <tag_name> [-m <"message">] [commit_id] # 加标签(默认打在当前分支的最新提交上,也可根据commit_id打标签,-a指定标签名,-m指定说明文字)
$ git show <tag_name> #  查看标签信息
$ git tag -d <tag_name> # 删除标签
$ git push origin <tag_name> # 推送一个本地标签
$ git push origin --tags # 推送全部未推送过的本地标签
$ git push origin :refs/tags/<tag_name> # 删除一个远程标签

最后附学习源泉传送门:Git官网 廖雪峰老师的Git教程