Git操作教程

Git基本介绍

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。Git 是分布式的,SVN 不是,即Git在不联网的情况下依旧可以提交,而SVN需要联网的情况下才可以使用。
工作区: 在电脑里能看到的目录
暂存区: git add 后还没commit 即在暂存区
版本库: 已经commit的

拉取配置仓库

git clone
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

克隆仓库的命令格式为:

git clone
如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone
参数说明:

repo:Git 仓库。
directory:本地目录。
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:

$ git clone git://github.com/schacon/grit.git
执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。

如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit

配置

git 的设置使用 git config 命令。

显示当前的 git 配置信息:
$ git config --list
credential.helper=osxkeychain
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true

编辑 git 配置文件:

$ git config -e # 针对当前仓库
或者:

$ git config -e --global # 针对系统上所有仓库

设置提交代码时的用户信息:

git config --global user.name “runoob”
git config --global user.email test@runoob.com
git config --global http.proxy “localhost:50321” 配置代理
git config --global user.password “your password” 配置密码
git config --list 列举git配置
git config --global credential.helper store 设置保存密码,输入一次后,后续不需要再输入

提交与修改:

git add 添加文件到暂存区
git status 查看仓库当前的状态,显示有变更的文件。
git diff 比较文件的不同,即暂存区和工作区的差异。
git commit 提交暂存区到本地仓库。
git reset 回退版本。
git rm 删除工作区文件,这个和git add是相对的
git rm --cached runoob.txt 从暂存区删除文件,在工作区仍旧保留文件,加上–cache参数
git mv 移动或重命名工作区文件。
git log 查看历史提交记录
git pull 下载远程代码并合并
git push 上传远程代码并合并
git branch 列出分支
git branch (branchname) 创建一个分支
git checkout -b (branchname) 创建分支并切换到该分支
git branch -d (branchname) 删除分支
git merge newtest 将分支合并到当前分支上
git blame 查看指定文件的修改记录
git tag -a -m “版本发布” 打标签并添加内容注释
git show 查看只当版本的修改

修改提交到多个分支:
1.先在dev分支提交,然后通过git log看到提交的commit id
2. git switch windows_dev 切换分支
3. git cherry-pick commit_id 获取指定修改
4. 有冲突会提示如有冲突解决冲突,没有的话直接git push
解决冲突通过git status 查看冲突的文件,随后vim打开进行修改,冲突的地方会有<<这样的符号

# 丢弃本地修改,更新至最新的commit:
git clean -xdf 清除掉本地的修改,用于清除未被track的文件(即未被add的文件)
-f 表示文件
-d 表示目录
-x .gitignore中的文件

版本回退:

git reset [–soft | --mixed | --hard] [HEAD] reset 用于将track的文件回滚到某一个版本

–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变(之前的git add会失效)
–soft 参数用于回退到某个版本,之前的git add依然生效的
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

版本回滚

git revert 版本号 回滚到指定的版本
git reset 和 git revert 的差别在于git reset会修改历史提交记录,而git revert会产生一条新的提交记录,代码与之前的版本保持一致;

仓库迁移

有时我们不得不将仓库迁移至新的仓库,但是又不想丢失之前的提交log,这时我们可以先将仓库clone到本地,然后将整个仓库推到新的仓库:
git push --mirror http://192.168.1.100/abc/test.git
注意: 我们需要先将仓库设置为unprotected;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值