git基本命令

=========================================本地仓库的操作

一、 创建版本库 : git init

 对本机的用户名和邮箱进行配置:  
        git config --global user.name "Your Name"
        git config --global user.email "email@example.com"

二、理解概念: 工作区---> git add 文件名 (git add . 添加全部) --->暂存区---->git commit -m "" ---->版本库 (生成版本号)

三、查看工作区和暂存区的状态: git status

四、查看版本记录: git log | git log --pretty=oneline | git reflog

五、版本回退

(1)整个版本回退: git reset --hard 版本号
000000000000

(2) 单个文件的版本回退 git checkout 版本号 文件名或路径+文件名

六、你的删除,修改,添加,如果确定要保留在记录中,则一定要git commit

==========================================远程仓库的使用

一、无论是关联到github或码云,可以用https,也可以用ssh协议,但ssh必须进行密钥的配对

(1)生成密钥

    ssh-keygen -t rsa -C "747094687@qq.com"

(2) 在github进入个人中心:  SSH --> 添加密钥(把本机公钥的内容粘进去)

二、在github上新建仓库: new repository , 可以复制仓库的git地址(ssh协议)

三、在本地克隆远程仓库: git clone git地址

四、怎么把本地版本库推送到远程仓库:

(1)git remote add origin http://xxxxxx.git

BUG:  如果出现错误 :  fatal: remote origin already exists.

      1、先输入$ git remote rm origin



      2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!

(2) git push -u origin master

BUG:  

   (1) 检查一下最新的操作是否git commit,  如果提交后,再执行该命令


   (2)如果不是上面的原因,而git push不成功,可先git pull origin master  或git pull origin master --allow-unrelated-histories  (如果进入编辑状态,则输入”:wq”回车退出), 再执行上面的命令。



  (3)git push -u origin master 出现以下的报错

$ git push -u origin master
To github.com:wfteacher/yts0226.git
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:wfteacher/yts0226.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决方案: git push --force origin master   即可推送成功



  (4)git上传码云代码提示报错信息You do not have permission to push to the repository via HTTPS

原因一  

由于是新本子新环境,很多都是自己后来重新搭建的,创建完一个空的项目之后根据提示有一个git的全局设置

git config --global user.name "your name"

git config --global user.email "your eamil"

处理完成之后,
通过

git push -u origin master
?

执行后,一开始以为是用户名密码错了,经过两次尝试,发现没有问题。

原因二

根据提示,意思大致是使用https协议没有权限,

于是采用了ssh,通过执行

git config --list

可以查看到当前项目关联的git地址,进入到项目根目录下的.git文件夹,有一个config的文件,

打开修改对应关联的地址为ssh形式的地址,然后在执行

git push -u origin master

发现成功了。

五、把远程仓库最新的版本拉取到本地

git pull

(1)如果出现远程文件和本地文件的冲突,则需要解决冲突后,再进行git push

注意:

(1)团队协作时,由一人创建远程库,

(2)其他成员在远程库的账号上注册SSH, (各自账号中的SSH删除),即可拉取,推送

(3)其他成员通过https地址来查看仓库

合并分支

想将dev分支合并到master分支,操作如下:

// 首先切换到 master分支上
git  checkout master
//  如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
// 然后我们把dev分支的代码合并到master上
git  merge dev
// 然后查看状态及执行提交命令
git status

On branch master
Your branch is ahead of 'origin/master' by 12 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

//上面的意思就是你有12个commit,需要push到远程master上 
> 最后执行下面提交命令
git push origin master

合并单独的文件 (文件夹)

拉取指定分支的指定文件
git checkout dev src/modules/admin

其他分支命令

fork别人开源项目 提交pr时用到的命令
先将更改push到个人仓库 再设置upstream和同步源仓库最新代码 提交pr
{
查看当前项目来自的git地址
git remote -v
添加项目地址
git remote add upstream  git地址
更新远程指定的项目地址
git pull upstream  master
}
更新远程分支列表
git remote update origin --prune

查看所有分支
git branch -a

删除远程分支Chapater6
git push origin --delete Chapater6

删除本地分支 Chapater6
git branch -d  Chapater6

Git社区更新新命令 替换Checkout

Git社区发布了Git的新版本2.23。在该版本中,有一个特性非常引人瞩目,就是新版本的Git引入了两个新命令 git switch 和 git restore,用以替代现在的 git checkout。换言之,git checkout 将逐渐退出历史舞台。

Git社区决定这样做,是因为目前 git checkout 命令承载了太多的功能,这让新手们感到困惑。git checkout 的核心功能包括两个方面,一个是分支的管理,一个是文件的恢复。这两个核心功能,未来将由 git switch 和 git restore 分别负责。

相比之下,新命令旨在将职责明确分为两个较窄的类别:更改分支的操作和更改文件的操作。为此,请照顾前者和后者。为了我们的目的,让我们更详细地了解每个。git checkoutgit switchgit restore
1、分支管理

在分支管理方面,目前切换分支以及创建分支,是使用

git checkout <分支名> 和 git checkout -b <分支名>
有了 git switch 之后,对应的命令分别为

git switch <分支名> 和 git switch -c <分支名> 
最简单的调用如下所示:git switch

$ git switch my-feature

Switched to branch 'my-feature'

Your branch is up to date with 'origin/my-feature'
在这种模式下,您可以将其视为类似于的无选择调用。如果要替换(或简称,),可以编写:git switchgit checkoutgit checkout --branchgit checkout -b

创建并且切换新分支

Tinywan@DESKTOP-TEDEO2S MINGW64 /d//wiot.tinywan.com (master)
$ git switch -c my-new-feature
Switched to a new branch 'my-new-feature'

Tinywan@DESKTOP-TEDEO2S MINGW64 /d/wiot.tinywan.com (my-new-feature)
$ git branch
这里是短期的,并可以取代你的肌肉记忆。或者,从指定的提交开始(而不是分支当前已检出的提交):-c--creategit checkout -b

$ git switch -c my-new-feature 0810beaed7

Switched to a new branch 'my-new-feature'
该文档中还有其他一些示例,包括上述更多示例以及有关如何设置跟踪分支,孤立分支等的一些示例。

2、文件恢复

git restore另一方面,它使确定要更改的文件,要更改的文件以及更改的位置变得容易得多。除了记住的纠结语义外,还提供了两个选项来指定还原的更改将移至何处。如果您通过(或完全不通过任何操作),则更改将进入您的工作副本。如果通过,它们将进入您的索引。最后,如果您同时通过了两者,则两者都将更改为相同的内容。git checkoutgit restore--worktree--staged

git restore还可以通过可选选项更轻松地了解要还原的内容来自何处。如果未指定,则从登台区域还原内容,否则,从特定树还原它们。注意:和之间的另一个区别是,默认为和将删除源树中不存在的跟踪文件。请参阅我们的2.22博客文章中的讨论。 --source--sourcegit checkoutgit restorerestore--no-overlay--overlay

例如,如果我希望文件在工作副本和索引中的内容都与三次提交之前相同,则可以这样写:main.c

$ git restore --source HEAD~3 --staged --worktree main.c

……更改将完全适用。的新文档中git restore还有更多示例。

详细地址 https://blog.csdn.net/qq756684177/article/details/104454371

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文按照 设置工程、分支与合并、本地操作、分享和更新 四步来简单说一下 Git 基本命令的用法。 Git 命令参考...
    michael_jia阅读 5,105评论 0 3
  • Unix 常见指令 (下面的file是指 文件名+后缀 的) s –l 列出当前目录下的所有内容(文件...
    阿敏其人阅读 7,112评论 1 2
  • 2017-03-13Git基本命令整理 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的...
    无为不争静阅读 1,813评论 0 0
  • git config git config命令的作用是配置git的相关信息。 配置全局的用户名和邮箱,mac下可通...
    磐璃阅读 2,839评论 0 0
  • git init # 初始化本地git仓库(创建新仓库) git ...
    A梦想才让心跳存在阅读 3,355评论 3 3