git 使用方法

基础命令

查看仓库当前状态

git status

查看修改内容

git diff
  • 要随时掌握工作区的状态,使用git status命令。

  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

查看版本历史记录(HEAD)表示当前版本

 git log --pretty=oneline

 回退到指定版本(HEAD~1表示回退一个版本)

 git reset --hard HEAD~1

回到指定的版本(需要指定版本号)

git reset --hard 4c8ab(版本号前几位)

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。 

当你把暂存区的文件 commit 提交之后,你对工作区又没有任何修改,那么工作区就是“干净的”,每次修改,如果不用git add到暂存区,那就不会加入到commit中。

当你想撤销修改而且没有提交到暂存区的时候

git checkout -- readme.txt

 当你想撤销修改但是已经提交到暂存区的时候

git reset HEAD readme.txt
git checkout -- readme.txt
  • git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

误删文件时可以执行

git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。 

 注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

git克隆指定分支

git clone -b 分支名 仓库地址

 远程仓库

把本地仓库的内容添加到GitHub仓库(前提是GitHUb的SSH公钥已经配置好了)

git remote add origin git@github.com:laoshiquan/learngit.git
git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 

从现在起,只要本地作了提交,就可以通过命令

 git push origin master

把本地master分支的最新修改推送至GitHub。

如果想要删除远程库(实际上是解除本地与远程库的联系),先执行查看远程库信息

git remote -v

再删除

git remote rm origin

注意:要真正删除远程库,需要登录到GitHub,在后台页面找到删除按钮再删除。

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

Git支持多种协议,包括https,但ssh协议速度最快。

BUG分支

应用场景:当你在dev分支上的工作进行一半,突然很急要改一个master上的bug时,你可以使用git的暂存功能来保留你的工作现场

(1)保留工作现场

git stash

(2)切换master分支并创建临时分支

git switch master
git switch -c fix-bug

(3)修改master分支上的bug并提交

git add .
git commit -m "fix-success"

 

 (4)切换到master分支,合并分支,删除临时分支

git switch master
git merge --no-ff -m "合并临时分支到master" fix-bug
git branch -d fix-bug

(5)切换回dev分支,找出之前的工作现场,选择一个现场并进入现场

git switch dev
git stash list
git stash apply stash@{0}
git stash

(6)复制之前修改过的临时分支到dev分支

 git cherry-pick f3ab7a0(临时分支提交的修改)

如果要丢弃一个没有被合并过的分支,可以强行删除

git branch -D <name>

多人协作 

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

注意:如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令设置devorigin/dev的链接。

git branch --set-upstream-to=origin/dev dev

只提交部分文件

// 添加需要提交的文件名(git status)
git add src/xxxxxxxx

// 忽略其他文件,把现修改的隐藏起来,这样提交的时候就不会提交未被add的文件
git stash -u -k

git commit -m "create"

// 拉取要合并的分支
git pull --rebase origin dev

// 解决冲突

git add.
git commit -m "create"

// 切换分支
git checkout -b dev

// 选择要提交的分支提交
git push origin dev

// 恢复之前忽略的文件
git stash pop 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微光无限

破晓的日子还有很多!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值