Git日常命令

  • 查看修改用户名、邮箱
查询用户名、邮箱
$ git config user.name
$ git config user.email
新建、修改用户名、邮箱
$git config --global user.name "xxx"
$git config --global user.email "xxx"

新建版本库及提交文件

     版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原。

  • 新建testgit版本库
$ cd d:
$ mkdir testgit
$ cd testgit
$ pwd(使用pwd查看目录)
  • 使用git init 把目录变为git可以管理的仓库,会多一个.git目录,这个目录是用来跟踪管理版本的。
$ git init
  • 新建一个aa.txt 文件,使用git add 将文件添加到暂存区
$ git add aa.txt
-- 批量添加(不会添加被删除的文件)
$ git add .
-- 批量添加,(会添加被删除文件)
$ git add -A
-- 批量添加(只会添加已经add的文件)
$ git add -u
  • 使用git commit 提交文件
#-m 后面为注释
$ git commit -m '提交'
  • 使用git status 查看是否有未提交文件
$ git status

修改aa.txt内容,使用git status查看结果,会提示文档已经修改,但是没提交。 可以使用git diff 查询修改内容

$ git diff aa.txt

将远程仓库修改更新到本地

$ git merge

版本回退

  • git log 查看历史记录
#git log 
#查询简洁日志
$ git log --pretty=oneline
  • 回退版本。方法一是 git reset --hard HEAD^ ,n个^就是表示回退到上n个版本;方法2是$ git reset --hard HEAD~n 回退到前n个版本。
#回退上一个版本
$ git reset --hard HEAD^
#回退上一个版本
$ git reset --hard HEAD~1
# 查看文档内容
$ cat aa.txt
  • 回退之后,想要提交,就强行push
$ git push --force

如果又想要返回到回退前的版本,可以通过$ git reset --hard 版本号。

# 查询版本号
$ git reflog
# 回退到fe1aaea版本
$ git reset --hard fe1aaea

撤销修改

当修改但是并未提交的时候,可以通过git checkout 撤销修改。

$ git checkout -- aa.txt

撤销删除

通过rm命令或者手动删除文件后,未提交前可以on通过git checkout 撤销删除。

#删除文件
$ rm bb.txt
#撤销删除
$ git checkout -- bb.txt

远程仓库

    本地git仓库和github仓库之间是通过ssh加密传输的,所以需要设置秘钥。

    第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa(私钥)和id_rsa.pub(公钥)这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:ssh-keygen -t rsa –C “aaa@example.com”, 后面我是直接按回车跳过去了。

    第二步:登录GitHub,打开setting,添加ssh key ,填上任意title,在key文本框里粘贴id_rsa.pub的内容。

  • 添加远程库

    已经在本地建了一个git仓库后,想在github上建立一个git仓库,并且经行远程同步。

    先在GitHub上新建 new repository

获取到https://github.com/aaa/ceshi11.git,在本地运行命令

git remote add origin https://github.com/aaa/ceshi11.git

 之后将本地仓库内容推送到远程,由于第一次推送,所以加上了-u参数,使得两者关联起来

$ git push -u origin master

之后,进行了任何修改,都可以直接推送到远程仓库

$ git push origin master

从远程库克隆

GitHub建好项目之后,获取到地址https://github.com/aaa/ceshi11.git,通过clone命令即可克隆到本地

$ git clone https://github.com/zxlgit1807/ceshi11.git

创建合并分支

创建dev分支。加上-b参数表示创建并切换,相当于两条命令git branch dev ,git checkout dev

$ git checkout -b dev

查看当前分支,带*的为当前分支

git branch

修改aa.txt,提交之后,切换到主线,发现主线上并没有修改。

#先修改txt
$ git add aa.txt
$ git commit -m 'dev分支第一次提交'
#切换到主线
$ git checkout master
#(发现并没有修改)
$ cat aa.txt

将分支内容合并到主线

#将分支合并到主线
$ git merge dev
# 查看,发现主线上内容更新了
$ cat aa.txt

删除分支

$ git branch -d dev

上面情况是理想情况,如果分支做了修改、主线也做了修改,都提交之后,按上述将分支合并到主线,

#合并之后,查看状态发现报冲突
git status
#查看内容(head 是主线内容 >>>>>dev 是分支内容)
cat aa.txt
#查询具体情况
#git log

分支管理。通常合并分支时,git一般使用”Fast forward”模式,上面的删除分支之后,会丢掉分支信息,所以用使用带参数 –no-ff来禁用”Fast forward”模式。

    其它操作相同,合并分支的时候,使用 git merge –no-ff -m “注释” dev

$ git merge –no-ff -m 'hrhrhrh' dev
$ git log --graph --pretty=oneline --abbrev-commit  
#或者
$ git reflog

Bug分支

    例如建立了一个开发分支dev,还没开发完成,线上爆了个404bug,建立另外一个分支404-dev,则需要暂时将dev分支隐藏起来

#dev分支修改之后,用git staus 查看发现有提示
#将dev隐藏
$ git stash
#再次运行git status,发现没有提示冲突了
#创建404分支,修改完成并且合并分支,删除分支后,切换回dev分支
#使用git stash list查看工作区间
$ git stash list
#恢复工作区间,方法1。git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
$ git stash apply
$ git stash drop
#另一种方式是使用git stash pop,恢复的同时把stash内容也删除了
$ git stash pop

代码冲突

 如果是修改的不同行

git stash
git pull
git stash pop

如果修改的是同一行

代码commite之后push会报冲突
git fetch
git merge
手动解决完冲突之后
git diff --check  查看有哪些没解决的
都解决了之后再提交

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值