git的使用命令

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仓库

强制拉取远程覆盖本地:先git fetch --all #取回远程库的所有修改;再git reset --hard origin/master

可参考文章: git log命令全解析

posted @ 2018-05-30 21:26  覆手为云p  阅读(413)  评论(0编辑  收藏  举报
停止精灵球