git的基本命令

设置名称和邮箱

$ git config --global user.name "username" 

$ git config --global user.email "email"

git config  --list  查看配置


git总共分为这么几个区域:


工作区:也就是我们本地
git暂存区: 此时还没有提交到git仓库
git仓库: 此时是已经提交到git仓库了.


提交到git仓库的文件,接下来就是提交远程了。

---------------------------------------------

查看:
可以通过git status来查看文件状态


------
添加
-----------------------------------------
添加文件到暂存区
git add 文件



将暂存区的文件提交到仓库
git commit -m '描述'



------
修改
--------------------------------------

修改:
那么已经添加到仓库的文件我们需要修改的化,我们是需要重新提交暂存区,再提交仓库
如果是添加到暂存区的文件需要修改的化,我们修改文件后,直接add就可以了,因为之前还没有提交过




-----
删除暂存区文件
----------------------------

如果我们的文件是只提交了暂存区,没有提交到仓库:
1.保留我们工作区的文件,也就是本地的(推荐使用这种)  
    git rm --cached 文件   (强调,这是删除暂存区的)不删除本地工作区的

如果直接删除本地文件的话,暂存文件还是会存在的,因为我们删除的只是本地的工作区的文件而已



---- 
删除仓库文件
--------------------------
git rm 文件      
git commit -m '删除仓库文件'

这种删除会删除工作区和仓库的文件,并且暂存区的文件也会被删除,没有了
注意:修改仓库的数据一定要提交,

而且删除仓库的文件时,必须是需要和本地工作空间的文件版本相同,
也就是说一定是要最新的版本才会删除成功:
       不管只是在工作区修改了,还是修改后添加到暂存区了,最后都要提交到仓库,这个文件才能删除




-----
工作区文件恢复----来自暂存区
--------------------------

文件恢复,如果工作区的文件不小心被删除了,我们可以通过暂存区来恢复,

不管是删除了还是修改了,都可以还原

注意:文件的恢复是来自暂存区,不是仓库

git checkout -- 文件名称

版本回滚:

 git reset:  回滚到某次提交

 
首先我们需要看提交记录 : 
git log     
每一次提交的记录上面都有一个提交的id ,这个id是我们需要的。



git reset --soft:此次提交之后的修改会被退回到暂存区。
说明: 
  也就是说会退到这个指定的版本的提交之前,存在暂存区的时候


git reset --hard:此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的。
说明:
  暂存区没有这个版本,回退到这个版本还没有修改的时候。


然后回退版本后,我们在推至远程,当然,如果压根就没有使用远程仓库的话就不需要这一步:
git push origin HEAD --force  强制推至远程仓库。


误删恢复

如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录



 git relog // 复制要恢复操作的前面的 hash 值
 git reset --hard hash // 将 hash 换成要恢复的历史记录的 hash 值

注意:
删除中间某次提交时最好不要用 git reset 回退远程库,
因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

分支

创建分支
git branch 分支名称



切换分支
git checkout 分支名称



分支提交到远程
git push origin 本地分支名称:远程分支名称  (一般都是写成一样的名字)

分支提交到远程后代码就已经同步复制了


此时,就本地和远程都有新的分支了


查看分支  git branch

-----------------------------------------

那么分支代码怎么提交远程呢?
git push origin 当前分支名字   (除了主分支都需要携带当前的分支名称)

注意:当前分支内的修改不能提交到其他的分支,也就是写了其他分支的名称也不会提交远程成功。



单独拉去某个分支的代码

git clone -b 分支名称 git地址

-b表示分支的意思

但是这种单独拉取分支的方式下,修改代码后,提交代码是不需要去指定分支名称的,
因为我们这里只有这一个分支。

git协议:ssh

上面我使用的https的方式去和github打交道,:

这种方式就是每一次push都需要输入账号密码,邮箱很不方便

所以我们可以使用ssh(密钥的方式来进行交互)


----------------------------------------------------

进入该目录:
cd ~/.ssh
ls

id_rsa    id_rsa.pub

私钥       公钥


如果没有我们就需要生产:

首先我们需要在本地生产密钥:

clip < ~/.ssh/id_rsa.pub   #最好手动输入,复制容易出问题

然后将  id_rsa.pub 公钥复制到github上

 将公钥复制在这里就可以了

这些做好后,通过这个命令来测试一下:

 ssh -T git@github.com
看返回的内容来判断是否密钥可用

我们还要来判断git是否可以是要ssh:

git remote -v  来查看

这样的表示是支持ssh

不支持的话我们需要添加:

git remote add origin git@github.com:gww-git/Repository.git
 

然后我们再来拉取代码,主要,是要ssh的地址才可以

拉取代码的方式都一样的命令,只不过地址变了

git clone xxxxxx

这样就不需要每次push都输入账号和密码了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值