GIT命令行操作

76 篇文章 0 订阅
62 篇文章 2 订阅

图形的可以使用tortoiseGIT,笔者认为用命令行比较好理解,推荐用命令行,其中基本的介绍可以直接看菜鸟https://www.runoob.com/git/git-create-repository.html

1、创建仓库

(1)在本地创建仓库

git init [directory]
是用在在本地创建新的仓库,以后再把此新的仓库推到server时的情况(也就是说server上原来没有此仓库的那种)

(2)在remote创建仓库

在本地创建完仓库后,需要推送到remote,方法如下:

git remote add origin git@github.com:tianqixin/runoob-git-test.git      origin含义是远程仓库的在本地仓库中的名字,可以是任意名字,但是要注意在下边使用git pull、git push等命令时主要用正确使用远程仓库的名字
git push -u origin master

2、克隆

git clone <repo> <directory>
例子:git clone git://github.com/schacon/grit.git mygrit

最后一个参数是git仓库在本地存放的目录,可以省略,默认为当前文件夹下

3、提交

(1)提交到缓存区(无论是新添加了文件,还是在修改原来的文件,都需要git  add)

git add  [directory / filename]
例子:
git add . 提交本目录所有文件
git add hello.cpp  提价hello.cpp文件

(2)提交到本地master

git commit   -m  '第一次版本提交',注意若不加  -m,则会直接以用vim打开一个文件的形式让你输入注释

此外还有  git commit   -am  '第一次版本提交',加上  -a  参数,将(1)、(2)合在一起操作
需要注意的是此语句只用于修改文件,若是新添加了文件,还是需要将(1)、(2)分开来执行,不能直接运行git commit   -am

(3)提交到remote

git push origin master:master     origin为远程仓库名字,就是server端,第一个master代表远端的分支名称,master可省略,第二个master代表本地分支名称

4、本地仓库与远程仓库回滚

(1)git log     查看本地提交记录,找到commit_id

(2)回滚
git   reset    --hard    commit_id
或   git  reset   --hard     HEAD^/HEAD^^/HAED~100   (回滚上一版本、上上版本、上100版本)
或   git   revert -n commit_id,需要注意reset、revert有区别
(对于 git  revert 使用本人一直没用明白,等明白了在补充)

其中--hard选项表示彻底将工作区、暂存区和版本库记录恢复到指定的版本库,HEAD^表示回滚到上一个版本,HEAD^^表示回滚到上上一个版本,以此类推,如果要回滚到上100个版本,可以使用HEAD~100
参考:
https://blog.csdn.net/qq_36440298/article/details/86065246

此时就完成了对本地仓库的回滚

(3)git  push  origin  master:master ,推送到远端(此部是对远程仓库实现回滚)
有可能需要加上   -f   参数,因为reset之后本地库落后于远程库一个版本,可能需要强制提交

回滚部分整体参考了:https://zhuanlan.zhihu.com/p/137856034

5、代码拉取更新

方法一:

git   pull   origin  master:master
origin代表远程仓库名字,第一个master代表远端分支名称,第二个master代表合并到本地仓库的分支名称,其中本地仓库的分支名称可以省略

方法二:

git   fetch  + git  merge
例子:
git   fetch   origin  master:brantest   拉取远端的master分支到本地的 brantest 分支,本地仓库分支名称可以省略
git   merge   brantest           与本地仓库的brantest 分支合并

本部分参考:https://www.cnblogs.com/taohuaya/p/10761799.html

6、reset与revert区别

使用reset回滚日志中不会再显示回滚版本后的版本,使用revert则不会受影响,就像新加了一个版本一样

参考:https://blog.csdn.net/yxlshk/article/details/79944535

7、其他

(1)关于origin的理解

首先origin是远程仓库在本地仓库的名字,当从从服务器clone下来仓库时,git为我们默认指定远程仓库名字为:origin
若仓库是用git init 在本地创建的,则在  git   remote add   origin   url的时候,可以指定远程仓库在本地仓库的名字为其他的名字

参考:https://blog.csdn.net/niexia_/article/details/79422859https://www.jianshu.com/p/7b2b152cd03f

(2)查看信息

git remote -v    查看远程URL信息
git  status 查看在你上次提交之后是否有修改,加上  -s   显示简略信息

git   diff  查看执行 git status 的结果的详细信息

(3)配置个人信息

git config --global user.name "runoob"
git config --global user.email test@runoob.com

8、放弃本地的修改

放弃本地更改分三种情况:

(1)未使用 git add 提交到本地仓库

git checkout -- filename       表示放弃本文件的修改
git checkout .                       表示放弃当前目录下所有文件的修改

(2)已经使用了  git add  缓存了代码,但没有使用  git commit

git reset HEAD filename        或        git reset HEAD .

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改

(3)已经使用  git commit

使用4中的回滚方式

参考:https://www.jianshu.com/p/c0f7e4ac14c7

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值