一、Git版本控制
git官网:https://git-scm.com
git淘宝镜像地址:http://npm.taobao.org/mirrors/git-for-windows
工作流程:工作区 ---> 暂存区 ---> 本地仓库 ---> 远程仓库
二、Git环境配置
1 #查看[全局]配置: 2 git config [--global] --list
1 #设置提交代码时的用户名和邮箱: 2 git config [--global] user.name "[name]" 3 git config [--global] user.email "[email address]"
1 #重置用户名和密码 2 git config --replace-all user.name "[name]" 3 git config --replace-all user.email "[email address]"
三、Git常用命令
1、仓库
1 #在当前目录新建一个Git代码库 2 git init 3 4 #下载一个项目和它的整个代码史 5 git clone [url]
2、增加/删除文件
#添加指定文件到暂存区 git add [file1] [file2] ... #添加指定目录到暂存区,包括子目录 git add [dir] #添加当前目录的所有文件到暂存区 git add . --------------------------------------------- #删除工作区文件,并将这次删除放入暂存区 git rm [file1] [file2] ...
3、代码提交
1 #提交暂存区到仓库区 2 git commit -m "[message]" 3 4 #提交暂存区的指定文件到仓库区 5 git commit [file1] [file2] ... -m "[message]"
4、分支
#列出本地所有分支 git branch #列出所有远程分支 git branch -r #列出所有本地分支和远程分支 git branch -a #新建一个分支,但仍然留在当前分支 git branch [branch-name] #新建一个分支并切换到该分支 git checkout -b [branch] #切换到指定分支 git checkout [branch-name] #合并指定分支到当前分支(在master上操作) git merge [branch] #删除分支 git branch -d [branch-name] #删除远程分支 git push origin --delete [branch-name] git branch -dr [remote/branch]
5、查看信息
1 #查看所有文件状态 2 git status 3 4 #查看指定文件状态 5 git status [filename] 6 7 #推送到远程仓库 8 git push 9 10 #从远程仓库拉取 11 git pull
6、远程同步
#下载远程仓库的所有变动 git fetch [remote] #显示所有远程仓库 git remote -v #添加一个新的仓库,并命名 git remote add [shortname] [远程仓库url] #取回远程仓库的变化,并与本地分支合并 git pull [remote] [branch] #上传本地指定分支到远程仓库 git push [remote] [branch] #强行推送当前分支到远程仓库,即使有冲突 git push [remote] --force #推送所有分支到远程仓库 git push [remote] --all
四、Git实战
一、暂存区提交与撤销
1、比较工作区和仓库的不同
1 执行 2 git diff HEAD -- [文件名] 3 比较工作区和仓库的不同
1 差异比较说明: 2 '---':表示变动前的文件 3 '+++':表示变动后的文件 4 变动的位置用两个@符号作为开始和结束 5 '-0,0':减号表示第一个文件,第一个0表示第0行,第二个0表示连续0行; 6 '+1,2':加号表示第二个文件,第一个1表示第1行,第二个2表示连续2行;
2、暂存区删除文件
git reset HEAD [文件名]
二、版本回退
1、查看日志
git log
2、回到上一个版本
1 git reset --hard HEAD^
3、回到上两个版本
1 git reset --hard HEAD^^
4、回到指定版本
1 git reset --hard HEAD~3 2 #回到3个版本前
5、查看所有版本信息
git reflog
6、回到指定版本
1 git reset --hard [唯一id]
7、查看简洁版本信息
git log --pretty=oneline
三、版本删除
1、取消删除
工作区删除文件,取消删除(git仓库没有删除)
1 git restore [工作区删除的文件名]
2、从版本库拉回
1 git checkout [工作区删除的文件名]
3、从版本库删除
1 git rm [版本库中要删除的文件名]
四、远程仓库
1、查看本地仓库提交的内容
1 git ls-files
2、添加远程仓库
1 git remote add [远程仓库别名:默认origin] [远程仓库地址url] 2 #eg:git remote add origin https://github.com/...
3、推送到远程仓库
1 git push -u origin master
4、使用SSH地址
生成密钥
ssh-keygen -t rsa -C "github/gitee账户邮箱"
密钥地址:
1 /c/Usres/Administrator/.ssh/id_rsa
在github或者gitee设置中找到SSH设置 ---> 新建SSH,添加公钥(不要加密钥)
其他同https
五、本地分支操作
1、查看所有分支
1 git branch
2、新建分支并切换
1 git checkout -b [new_branch-name]
3、删除指定分支
1 git branch -d [branch-name]
4、切换指定分支
git checkout [branch-name]
5、合并分支
合并指定分支到当前分支(当前分支为master,此操作在master分支上进行),禁止合并主分支到其他分支
1 git merge [branch]
6、重命名分支
如果newbranch名字已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名
1 git branch -m|-M [oldbranch] [newbranch]
六、远程分支操作
1、查看远程所有分支
1 git branch -r
2、查看本地和远程所有分支
1 git branch -a
3、创建远程分支&推送本地分支到远程分支
1 git push origin [branch-name] 2 #1、会创建远程分支 3 #2、远程分支与本地分支名字相同
4、删除远程分支(本地分支还保留)
危险操作
注:注意冒号
1 git push origin :[remote_branch]
5、拉取远程分支并在本地创建分支
注:远程分支前加origin
1 git checkout -b [local_branch] origin/[remote_branch]
七、本地分支冲突解决
1、本地分支修改文件
2、切换分支
1 git checkout master
3、本地master分支修改文件
4、主分支进行合并
1 git merge dev1
5、冲突解决方法
解决冲突后重新add,commit
6、查看分支合并图
1 git log --graph --pretty=oneline
八、多人冲突解决
1、先拉取
1 git pull