1、git的安装(略)
2、安装完git后,打开git bash,输入以下命令进行设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
3、许多基本命令都是和linux一样的,都可以尝试着使用;
4、本地版本控制
$ git init 把当前目录初始化为Git仓库;
$ git add filename 把文件添加到仓库,然后需进行下一条命令才有数据,git add .添加所有文件(但不包括被删除文件); git add -u 监控所有已经add过文件的修改,git add -A 所有;
$ git commit -m "wrote a readme file" 把最新文件提交到仓库,-m 后边跟的是本次提交的说明;
$ git status 查看仓库状态
$ git diff 查看具体的改变内容(只能看到文本的);
$ git log 显示从最近到最远的更新日志;
$ git reflog 查看命令历史;
$ git reset --hard HEAD^ 回退到上一个版本,HEAD,当前版本,HEAD~10,当前版本的前10个版本;HEAD^还可以用指定的版本号替换,以退到某个已知的版本;
$ git checkout filename 把指定文件恢复到最近一次git add时的状态;清空工作区修改
$ git reset HEAD filename 把指定文件恢复到最近一次git commit时的状态,即已上传版本的最新状态;清空暂存区修改;
$ git rm filename 删除文件,而后需要执行git commit操作才能把这个文件从版本库中删除;
5、分支
$ git checkout -b dev_name 创建一个只有自己能看到的分支,-b表示创建并切换到此分支;前边的master表示主分支(一般dev为开发分支),HEAD是指向master的指针;创建分支时其实只创建了一个指向master的指针dev_name,并把HEAD的指针指向了dev_name;
$ git branch dev_name 创建分支;
$ git checkout dev_name 切换到此分支;
$ git branch 列出所有分支;
$ git merge dev_name 将指定分支合并到当前分支;如果是快速模式,其实是把指定分支的指针指向当前分支;如果加上--no--ff参数,表示禁用Fast Forward快速合并模式;对于合并冲突时,可再提交一次add,commit,就会把两个冲突部分都列在一个文件中,同时完成合并;
$ git branch -d dev_name 删除分支;-D大写的表示强制删除;
$ git log --graph 查看分支合并图;
$ git stash 把当前工作所有文档存储起来,以后可以此为基础恢复工作环境;
$ git stash list 查看储存的临时工作现场;
$ git stash apply 恢复工作现场到工作区;后边还可加@{n}来恢复指定的现场;
$ git stash drop 删除储存的临时工作现场文件;
$ git stash pop 恢复并删除工作现场文件;
$ git tag tagname 为当前分支设定一个标签;默认为HEAD,也可指定一个commit id;
$ git tag 查看所有标签;
$ git show tagname 查看标签信息
$ git tag -d tagname 删除标签;
6、远程仓库
$ ssh-keygen -t rsa -C "email_address" 创建SSH Key;
$ git remote add origin git@web_address:web_username/repository_name.git 把本地仓库与远程已存在仓库关联;
$ git push -u origin master 把本地仓库推送到远程仓库,origin是远程仓库的默认名字,可以修改;在第二次以后的推送就可以省略"-u";如果要推送其他分支,就把master换成相应分支名;
$ git pull 把最新代码从仓库抓下来,其实前边的都可以不用,直接在此处后边添加远程仓库地址就可以;
$ git clone git@web_address:web_username/web_repository_name.git 把远程库内容复制到本地;
$ git remote 查看远程仓库信息,-v参数可显示更详细信息;
$ git branch --set-upstream-to branch_name origin/branch_name
$ git rebase 可将分叉提交历史整理成一条直线,但会修改本地分叉提交;
$ git push origin tagname 推送一个本地标签;如果标签名写--tags则推送全部未推送的标签;
$ git push origin :refs/tags/tagname 删除远程标签;
7、可在仓库根目录创建一个.gitignore文件将想放在仓库又不想提交的文件名列入其中,git提交时就不会提示这个文件了;
对于已经提交过的文件,.gitignore没有效果的,这种要使用:git update-index --assume-unchanged [file-path]
取消使用: git update-index --no-assume-unchanged [file-path]
8、git config --global aiias.name1 command 将name1配置为comman命令的别名,那么就可以使用name1来代替command了;
9、多个远程仓库
$ git remote add origin https://gitee.com/fsoooo/test.git 添加第一个远程仓库;
$ git remote set-url --add origin https://github.com/fsooo/test.git 添加第二个远程仓库;
$ git push origin --all 同时提交到多个远程仓库,或者直接git push也能提交到所有仓库
#修改git的config文件,进行分开推送
[remote "gitee"] url = https://github.com/aland-1415/mybatis-springboot.git fetch = +refs/heads/*:refs/remotes/origin/* $git push gitee master 把代码推送到gitee仓库