git的简单使用

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

配置gitbash变量可以在C:\Program Files\Git\etc\bash.bashrc 中(git在win10的安装目录,linux可以直接在profile或者.bashrc中配置),比如:alias ll="ls -al"

基本配置:

git init

git config --global user.name 'zhaoyl'

git config --global user.email 'zhaoyl@adfasdf'

git config --get user.name //查看一些信息

基本命令

git add file | . //添加到暂存区

git commint -m ‘asdfasd’ file | *  //提交

git status //显示被修改的文件处于什么提交状态(处于工作区则提示:变更没有暂存,暂存区则提示:变更将要被提交,还是仓库则提示没有需要被提交的文件)

git diff

比较工作区与暂存区,

--cached  [...] 比较暂存区与最新本地版本库,

HEAD [...]比较工作区与最新本地版本库,

commit-id  [...] 比较工作区与指定commit-id的差异,

--cached [] [...]  比较暂存区与指定commit-id的差异

[] [] 比较两个commit-id之间的差异

> patch 生成补丁,参考diff详细说明

git log //显示文件修改历史(显示的是-m参数指定的提交说明,从提交时间线上看,显示的是HEAD指针指向的commit之前的【包括本commit)的记录

git reset --hard HEAD^ | commitId //回到上一个版本或具体提交id,HEAD^^上两个版本,HEAD~100 上100个版本,--hard操作的是提交id,而一次提交可以包含多个文件

git reflog //显示回退记录,从记录看到回退了两次,

git checkout -- file //撤销本地修改,和暂存区同步

git reset HEAD //撤销暂存区的修改,和本地库同步

git reset --hard HEAE^|commitid //和本地某次提交同步,前提是没有推送到远程库

git rm file //删除工作区文件,并把修改add到暂存区

远程仓库

github:https://github.com/

注册后,创建一个空的仓库,比如:[email protected]:zhaoyl2019/bigdata.git

本地ssh生成密码,在github上设置公钥

第一次和远程交互:

git clone [email protected]:zhaoyl2019/bigdata.git

或者远程是空仓库

git remote add origin git地址

然后提交本地仓库到origin

git push -u origin masters

分支

git checkout -b dev //创建一个dev分支,切换到dev;git branch dev 创建分支,git checkout dev 切换分支

git checkout master

git merge dev //把dev合并到master分支; --no-ff:禁止使用快进模式,合并生成一个commit,快进模式一般发生在没有需要解决冲突的时候。master指针直接指向分支

git log --graph //查看分支合并图

git branch -d dev //删除dev分支

git branch -D fe (fe 是dev的checkout)//强制删除fe分支,当fe分支没有被合并到dev分支时,可以强制删除

git stash //储藏分支,然后切到什么分支,工作区就是什么分支内容

git stash list //显示储藏的分支

git stash pop //恢复分支,并删除储藏的分支;git stash apply 恢复,git stash drop 删除

此操作在开发中临时拉取bug分支进行修复bug时用,可以隐藏dev中的分支进行修复bug

git checkout -b dev origin/dev //切换到远程dev分支

git pull //拉取最新的远程dev分支,如果pull失败,根据提示:git branch --set-upstream-to=origin/dev dev指定本地dev链接上远程dev

git push origin dev //提交到远程的dev分支

当两个仓库没有共同的祖先,要在本地合并他们

1.git remote add origin1 [email protected]:zhaoyl2019/bigdata1.git

2.git checkout -b bigdata

3.git fetch origin1

4.git branch --set-upstream-to=origin1/master bigdata

5. git pull //会提示:fatal: 拒绝合并无关的历史

6.git pull --allow-unrelated-histories //就可以进行合并了

当两个仓库有共同的祖先,要在本地合并他们

github中新建一个bigdata2仓库,并从bigdata导入数据

git remote add bigdata [email protected]:zhaoyl2019/bigdata.git

git remote add bigdata2 [email protected]:zhaoyl2019/bigdata2.git

git branch  -u bigdata/master master //本地已存在的master和bigdata/master建立追踪(此步骤发生在本地把remote都删除的情况,一般本地master已经追踪了bigdata/master了)

检查本地和bigdata一致后,可以新建分支或者在本地master上切换追踪,一般稳妥期间,应该切换分支来和bigdata2进行合并

本例子在本地master上操作

git fetch bigdata2

git branch -u bigdata2/master master

git pull 然后解决冲突

然后切换追踪

git branch -u bigdata/master master

git status 提示您的分支领先 'bigdata/master' 共 1 个提交(使用 "git push" 来发布您的本地提交)

git rebase //可以把本地未push的分叉提交历史整理成直线

git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

git tag -a -m "blablabla..."可以指定标签信息;

git tag可以查看所有标签

git show 查看标签内容

git push origin 可以推送一个本地标签;

git push origin --tags可以推送全部未推送过的本地标签;

git tag -d 可以删除一个本地标签;

git push origin :refs/tags/可以删除一个远程标签

你可能感兴趣的:(git的简单使用)