Github常用命令

基本操作

初始化仓库:

  • git init 初始化仓库

初始化成功后会生成一个.git文件,存储着管理当前目录内容所需的仓库数据。Git中称之为“附属于该仓库的工作树”,文件的编辑等操作在工作树中进行,然后记录到仓库中。

查看状态:

  • git status查看仓库当前状态,处于什么分支下

添加至暂存区:

  • git add
  • git add – –all
  • git add filename

向暂存区添加文件
如果只在git仓库的工作树创建文件,是不会被记录在git仓库的版本管理对象的,当用git status查看时文件会显示在untracked files中。执行git add后会加入暂存区,才能成为git仓库的管理对象。

提交:

  • git commit

git commit保存仓库的历史记录。将暂存区的文件保存到历史记录,通过记录可以在工作树中恢复文件。git commit -m “description message”。commit之后会生成一个对应于本次提交的哈希值,git的其他命令指向提交时会用到哈希值。

日志:

  • git log 查看提交日志
  • git log详细信息
  • git log – –pretty=short显示提交消息的第一行
  • git log filename 指定文件的日志
  • git log -p显示文件的改动
  • git log -p filename指定文件的改动
  • git log –graph以图表形式查看分支

查看差别:

  • git diff查看更改前后的差别(工作树与暂存区的差别)
  • git diff HEAD暂存区与最新一次提交的差别

推荐:
在commit之前先diff HEAD一下确认差别,commit之后log确认提价成功。

分支操作

查看分支:

  • git branch显示所有分支
  • 带*的是当前分支

创建分支:

  • git checkout -b newbranch创建新分支名为newbranch并切换当前分支到新分支

git branch newbranch
git checkout newbranch
这两条命令等同于上面的一条命令


git checkout -
切换回上一个命令
同:git checkout newbranch


合并分支:

  • git merge 合并分支(将a分支合并到a的父分支,首先要切换到父分支,再git merge)
  • git checkout master
  • git merge – –no– –ff newbranch
  • – –no– –ff是创建合并提交并在历史中记录
  • git log – –graph以图表形式查看分支

回溯版本和冲突:

git reset 回溯历史版本
要让仓库的HEAD(HEAD是指向当前分支的最新一次提交的指针)、暂存区、当前工作树回溯到指定状态,需要用(git reset –hard 目标时间点的哈希值)命令。
回溯到newbranch创建之前,此时相当于没有newbranch,filename文件也没被修改。
此时再创建一个newbranch2,修改filename,然后将newbranch2的filename 加入到暂存区中。
推进至newbranch分支合并后的状态。


git log只能查看以当前状态为终点的历史日志,,所以要用git reflog命令查看当前仓库的操作日志,


找出日志回溯前的哈希值,然后git reset –hard 哈希值,恢复到newbranch分支合并后的状态。
再合并newbranch2分支到主分支
git merge –no–ff newbranch2
此时发生冲突conflict
打开filename文件,会发现HEAD的内容和newbranch2 的内容,进行处理,比如删除一个或都留下,之后

才能合并。
之后在主分支add和commit,保存至历史记录。

git commit -am “description message”相对于合并add命令和commit两条命令。

更改历史

有时候会有一些小的修改,比如改了一个单词等,但修改就会有提交。然而在历史记录中,我们不需要看

到此类无用的提交记录,为此用到了更改历史的命令:

git rebase -i HEAD~2

git rebase,选定当前分支中包含HEAD(最新提交)在内的两个最新的历史记录为对象,并在编辑器中

打开。
形式如下:
pick 哈希值 最新第二次提交的描述
pick 哈希值 最新第一次提交的描述
修改方法:
将最新第一次提交记录的pick改为fixup,保存并关闭即可。


推送至远程仓库:

在github上创建一个仓库,不要勾选Initialize ……的选项,否则会自动生成readme,创建之初就与本地仓库失去了整合性,虽然之后会强制覆盖,但还是不要麻烦了。


添加远程仓库:
  • git remote add origin git@github.com:用户名/仓库名.git

执行之后,Git自动将git@github.com:用户名/仓库名.git远程仓库的名字改为origin(标识符)

推送至远程仓库
  • git push -u origin gitbranchname

推送至远程仓库gitbranchname分支,可以是master分支,也可以是其他分支,如果远程仓库没有gitbranchname,会自动创建。


-u表示在推送的时候将gitbranchname分支作为本地仓库当前分支的上游(upstream),添了这个参数,将来在运行git pull从远程仓库获取内容时,本地仓库的这个分支就可以直接从origin的gitbranchname分支获取内容,省去另外添加参数的麻烦。


从远程仓库获取
  • git clone url

git clone后默认处于master分支,同时系统将自动设置origin为该远程仓库的标识符。


获取远程仓库的newb分支:
  • git checkout -b newb origin/newb

创建远程仓库newb分支的同名本地分支(也可以不同名),就是说origin/newb是本地newb分支的获取来源。修改之后,执行git add 和git commit ,最后执行git push,就将修改推送至远程的newb分支中。



  • git pull获取最新的远程仓库分支

如果本地的A分支未提交,远程的与之对应的S分支就有了最新的提交,执行 git pull origin S将本地的A分支更新到最新状态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值