获取Git仓库通常有两种方式:1.在本地初始化一个Git仓库（不常用)2.从远程仓库克隆（常用) 获取Git仓库-在本地初始化Git仓库 执行步骤如下:1.在任意目录下创建一个空目录（例如repo1）作为我们的本地Git仓库2.进入这个目录中，点击右键打开Git bash窗口3.执行命令git init 获取Git 仓库-从远程仓库克隆 可以通过Git提供的命令从远程仓库进行克隆，将远程仓库克隆到本地命令形式:git clone + 【远程Git仓库地址】工作区、暂存区、版本库概念版本库: 前面看到的.git隐藏文件夹就是版本库，版本库中存储了很多配置信息、日志信息和文件版本信息等 工作区: 包含.git文件夹的目录就是工作区，也称为工作目录，主要用于存放开发的代码 暂存区: .git文件夹中有很多文件，其中有一个index文件就是暂存区，也可以叫做stage。暂存区是一个临时保存修改文件的地方Git工作区中的文件存在两种状态:untracked未跟踪 （未被纳入版本控制) tracked已跟踪 （被纳入版本控制)Unmodified未修改状态Modified已修改状态Staged已暂存状态注意:这些文件的状态会随着我们执行Git的命令发生变化文件在没有执行命令git add 时候,文件处于未跟踪状态Git常用命令本地仓库常用命令如下:git status 查看文件状态git add 将文件的修改加入暂存区git reset 将暂存区的文件取消暂存或者是切换到指定版本git commit 将暂存区的文件修改提交到版本库git log 查看日志远程仓库操作git remote 查看远程仓库git remote add 添加远程仓库添加远程仓库，运行 git remote add <shortname><url>添加一个新的远程Git仓库，同时指定一个可以引用的简写。git clone 从远程仓库克隆如果你想获得一份已经存在了的Git 远程仓库的拷贝，这时就要用到git clone命令。Git克隆的是该Git仓库服务器上的几乎所有数据（包括日志信息、历史记录等），而不仅仅是复制工作所需要的文件。克隆仓库的命令格式是: git clone [url]git pull 从远程仓库拉取将本地仓库内容推送到远程仓库，可以使用命令: git push [remote-name] [branch-name] 先加载到缓存区 这个只是把文件提交到了本地仓库，还没有到远程仓库注意:先提交到本地仓库，在提交到远程仓库，顺序不能搞错。git push 推送到远程仓库远程仓库操作-从远程仓库拉取git pull命令的作用是从远程仓库获取最新版本并合并到本地仓库，命令格式: git pull [short-name] [branch-name]注意:如果当前本地仓库不是从远程仓库克隆，而是本地创建的仓库，并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错（ fatal: refusing to merge unrelated histories )解决此问题可以在git pull命令后加入参数--allow-unrelated-histories分支操作分支是git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来，以免影响开发主线。同一个仓库可以有多个分支，各个分支相互独立，互不干扰。git branch查看分支 分支操作-查看分支git branch列出所有本地分支git branch -r列出所有远程分支git branch -a列出所有本地分支和远程分支git branch [name]创建分支同时会提示我们在那个分支上（加*号绿色的代表我们在那个分支）git checkout [name]切换分支git push [shortName] [name]推送至远程仓库分支同送到分支内容git merge [name]合并分支标签操作Git 中的标签， 指的是某个分支某个特定时间点的状态。通过标签，可以很方便的切换到标记时的状态。比较有代表性的是人们会使用这个功能来标记发布结点（v1.0 、v1.2等）。git tag列出已有的标签git tag [name]创建标签git push [shortName] [name]将标签推送至远程仓库git checkout -b [branch] [name]检出标签{mtitle title="更多命令"/}一、git安装后-指定名称和邮箱$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"二、创建版本库$ mkdir learngit //创建 $ cd learngit //使用 $ pwd //查看当前目录 $ git init //初始化，生成.git文件(若该文件隐藏，则使用ls -ah)三、把文件添加add和提交commit到版本库$ git add test.txt //添加 $ git commit -m "wrote a test file" //提交 $ git commit -m "add 3 files." //一次性提交多个文件 注意：必须在当前版本库和当前目录下四、版本控制$ git log //查看提交历史记录，从最近到最远，可以看到3次 $ git log --pretty=oneline //加参，简洁查看 $ git reflog //查看每一次修改历史 $ cat test.txt //查看文件内容 $ git status //查看工作区中文件当前状态 $ git reset --hard HEAD^（HEAD~100）（commit id） //回退版本 $ git checkout -- test.txt //丢弃工作区的修改，即撤销修改 $ git reset HEAD test.txt //丢弃暂存区的修改（若已提交，则回退） 五、删除文件 $ rm test.txt //直接删除 $ git rm test.txt $ git commit -m "remove test.txt" //删错了，恢复 $ git checkout -- test.txt六、远程仓库$ ssh-keygen -t rsa -C "youremail@example.com" //创建SSH Key $ git remote add origin git@github.com:Daisy/AKgit.git //关联 $ git push -u origin master //将本地内容推送到远程仓库（第一次） $ git push origin master //将本地内容推送到远程仓库（之后） $ git remote -v //查看远程仓库信息 $ git remote rm origin //删除远程仓库（解绑） $ git clone git@github.com: Daisy/AKgit.git //克隆远程仓库 //克隆之后使用和查看 $ cd gitskills $ ls $ git remote //查看远程库的信息 $ git remote -v //查看远程库的详细信息七、多人协作$ git checkout -b dev //创建并切换到分支dev //创建并切换到分支dev，同上 $ git branch dev //创建 $ git checkout dev //切换 //新版本 $ git switch -c dev //创建并切换到分支dev $ git switch master //直接切换分支 $ git branch //查看当前分支 $ git merge dev （--no-ff）(-m)//合并，把dev分支的工作成果合并到master分支上 $ git branch -d dev //删除dev分支 $ git stash //将现场储藏起来 $ git stash list //查看储存的工作现场 //恢复和删除 $ git stash apply $ git stash drop //恢复并删除 $ git stash pop $ git cherry-pick 4c805e2 //复制修改 $ git push origin master（dev） //推送分支 $ git checkout -b dev origin/dev //创建远程origin的dev分支到本地 $ git pull //抓取分支（解决冲突） $ git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接 $ git rebase //把本地未push的分叉提交历史整理成直线八、标签管理$ git tag v1.0 //打标签 $ git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字 $ git tag //查看所有标签 //若是忘记打，则查找历史提交commit id ，再打上 $ git log --pretty=oneline --abbrev-commit $ git tag v0.9 f52c633 $ git show v0.9 //查看标签详细信息 $ git tag -d v0.1 //删除标签 $ git push origin v1.0 //推送标签到远程 $ git push origin –tags //一次性推送全部本地标签 //删除标签，（若已推送到远程，先从本地删除，从远程删除） $ git tag -d v0.9 $ git push origin :refs/tags/v0.9 九、自定义git$ git config --global color.ui true //让git显示颜色 //忽略特殊文件 //.gitignore文件 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa //把该文件也提交到git $ git add -f App.class //强制添加被忽略的特殊文件 $ git check-ignore -v App.class //检查哪个规则出错 # 排除所有.开头的隐藏文件: .* # 排除所有.class文件: *.class # 不排除.gitignore和App.class: !.gitignore !App.class $ git config --global alias.st status //配置别名 $ git config --global alias.unstage 'reset HEAD' //配置操作别名 $ git config --global alias.last 'log -1' //显示最后一次提交信息 $ git last //显示最近一次的提交 $git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" //颜色 $ cat .git/config //查看每个仓库的git配置文件 $ cat .gitconfig //查看当前用户的git配置文件