Git&GitHub的使用

写在前面的话:由于现在很多的IDE已经把git,svn等常用的版本控制工具集成进去了,并且提供了很人性化的GUI操作界面,比如Android Studio, IntelliJ IDEA等,所以几乎不用懂git的命令就可以很方便的使用git,这导致了很多人认为学git命令行完全是为了装逼。其实不然,git的命令行的精华在于其跨平台性,尤其是在Linux系统下优势更明显,而且学习命令行有助于了解git的工作原理。想想假如你换了份工作,团队的开发工具发生了变化,你是不是需要重新开始学习另一个IDE关于git的GUI的使用?而命令行就不存在这个问题,一次学会,到处使用,呵呵,这句话是不是很熟悉?笔者学习的时候是完全基于命令行学习的,后来由于团队其他人都使用的是IDE的GUI,所以为了跟大家统一,我也去学习了下GUI的使用,从开始操作到熟悉,不超过5分钟!这就是效率!你学会了命令行再去接触GUI,那是分分钟的事。反过来的话,你用惯了GUI再去学命令行,那可就不是一时半会能搞定了,所以,还是从基础的命令行开始学吧,你会受益终身的!
  • 如何在github上新建仓库?
  1. 首先在github上注册账号,然后点击右上角头像旁边的➕号,在下拉菜单里选择【New Repository】:

然后在打开的界面输入相关信息,然后点击 【Create repository】即可完成创建。

2.然后在本地新建个目录,进入该目录,使用git clone XXX(远程仓库的地址)将远程仓库的代码 clone 下来。

3.将本地的项目文件复制进刚才clone完之后的目录,使用命令  git add . 添加所有需要提交的文件,然后使用git commit -m "添加说明"命令进行本地提交。

4.将本地的内容添加到远程仓库中 git push origin master  刷新github便可看到新提交的东西了。

如果在使用git push origin master命令时报错:Updates were rejected because the remote contains work that you do not have locally. This is usually caused by another repository pushing to the same ref. You may want to first integrate the remote changes (e.g., 'git pull ...') before pushing again.See the 'Note about fast-forwards' in 'git push --help' for details.表示远程服务端已经有人提交了其他修改,此时需要先执行git pull 命令,先将远程服务器的文件更新到本地,然后解决冲突,之后再次提交。具体操作



******************************git常用命令*******************************

开始一个工作区:(参见 git help tutorial)

clone :克隆一个仓库到一个新目录;

init :创建一个空的git仓库或者重新初始化一个已经存在的仓库。

在当前变更上操作:(参见 git help everyday)

add :添加文件内容至索引;

mv :移动或重命名一个文件、目录或符号链接;

reset :重置当前HEAD到指定状态;

rm :从工作区和索引中删除文件。

检查历史和状态:(参见 git help revisions)

bisect : 通过二分查找定位引入bug的提交;

grep :输出和模式匹配的行;

log :显示提交日志;

show :显示各种类型的对象;

status :显示工作区状态;

扩展,标记和调校历史记录:

branch : 列出、创建或删除分支;

checkout :切换分支或回复工作区文件;

commit :记录变更到仓库;

diff :显示提交之间、提交和工作区之间等的差异;

merge :合并两个或多个开发历史;

rebase :本地提交转移至更新后的上游分支中;

tag :创建、列出、删除或校验一个GPG签名的标签对象;

协同:(参见 git help workflows)

fetch :从另外一个仓库下载对象和引用;

pull : 获取并整合另外的仓库或一个本地分支;

push :更新远程引用和相关的对象。

命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概念的


---------------------------------使用示例-----------------------------------------

  • 使用git log 查看近期的操作日志,如果嫌输出的信息太多,可以使用 git log --pretty=oneline命令进行简单查看,git 的 commit id是一个sha1值,与svn的1,2,3等版本号不同,这是因为git是分布式的版本控制系统,每个人机子上都有一个完整的版本。
  • 回版本,首先必须需要知道当前版本是哪个版本,git中使用HEAD表示当前版本,使用HEAD^表示上个版本,使用HEAD^^表示上上一个版本,如果版本较多的话,则会用HEAD~20 类似的~加数字表示。使用git reset命令回退上一个版本 git reset --hard HEAD^ 回退成功后,会显示当前的版本,也可以输入commit id的前几位会退到指定版本,使用命令 git reset --hard commit id



git的版本回退非常快,这是由于git内部有个指向HEAD的指针,当我们选择回退到哪个版本时,指针便移动到哪个HEAD指针上。如果以及不知道已经回退版本的commit id,则可以使用git reflog命令查看HEAD的变化记录。


如果需要撤销修改则使用git checkout -- test.md 命令。这个命令可以将test.md在工作区的修改全部撤销。这里有两种状态:

一种是test.md自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是test.md已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令.

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还add添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

  • 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。


由于csdn上排版比较麻烦,所以写的比较乱。刚好最近要给部门培训git,我就把这些笔记资料都整理成一个文档了,排版很清晰明了,建议大家去下载文档学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值