Git使用(1)git上手教程和常用命令

一、上手教程:

1.建立本地仓并使之与bitbucket上远程仓同步:

1.在bitbucket上建立一个repository
2.在本地某文件夹:

git init

git add . ##此处最好单独添加每个要添加的文件,不要将二进制库、数据等添加进去.最好先到网上下载一个.gitignore文件,避免后续添加时不小心添加进不必要的文件
git commit -m ‘annotation’ //引号中是说明信息

git config – global usr.name “myname”//如果没有配置过
git config –global usr.email myemail@gmail.com
git remote add origin https://example1@bitbucket.org:example2/example3.git
git push origin master //上传步骤到此完成,此处可能需要输入bitbucket的密码

2.更改内容并提交
git status #查看修改过的文件
git add $files #添加上述被修改过的文件到缓存区(cache)
git commmit -m "a

二、git基本原理介绍

git分为工作区(working directory/working tree),和版本库(git directory/repository)两个部分。从working diretory字母理解,工作区就是git管理下的物理文件夹,也就是.git所在的文件夹及子文件目录。版本库分为暂存区/缓存区/索引库(staging area/index tree)和分支历史(history)两部分。
I.
当我们使用add ./dir1 或git ./dir1/file1.txt后,就将现在工作区./dir1下所有更改(包括增删文件)或仅仅file1.txt的更改存储到暂存区中了。
git status 可以显示当前缓存区和版本库的HEAD节点之间文件的差异(modified),以及当前工作区和缓存区间文件目录结构之间的差异:包括多的部分——没有添加到暂存区的文件(Untracked files)和少的部分——已删除的文件夹/文件。
可以连续多次git add 将不同内容存储到暂存区。
II.
此后,使用git commit,就能将暂存区的所有内容提交到版本库的分支了(默认分支是master)
如果不想commit到版本库历史中去,而是想做其他事(比如切换branch;比如想pull 最新代码在不添加当前修改的情况下对上一个版本fix一个bug),可以git stash,将当前工作区相对HEAD的更改存储下来;并且当前工作区回退到HEAD记录的版本。它将会把当前的更改存储到refs/stash文件中。也可以多次存储更改,通过git stash list列出所有更改。稍后切换回来后使用git stash pop将所有更改。

三:本地仓操作

1. 2类git仓库创建和配置

创建本地仓库
首先,设置一个文件,然后将这个文件初始化(里面有git版本记录文件.git)

mkdir myDir
cd myDir
git init

在服务端(比如本地文件夹、实验室服务器等上边)创建裸(bare)仓库

git init --bare repo_name

当需要部署一个远程仓库作为多人协作的连接点时(每个人向远程仓push/pull),远程仓需要是bare仓库
而我们平时在github, bitbucket, gitlab上创建的仓库,本质上就是一个bare repository
bare仓库的意思是该仓库只有.git文件信息,没有它管理的文件,也就会它仅仅是一个存版本信息的地方。bare仓库允许其他仓库向它push和pull。比如,从裸仓库 clone 下来的本地仓库可以进行正常的 push 操作, 但是从一般仓库 clone 下来的本地仓库却不能向目标仓库进行push。

随后配置的是你个人的用户名称和电子邮件地址
这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录

git config --global user.name "Kevin"
git config --global user.email kevin@example.com

如果不用global,则配置信息仅对当前git仓库生效

再往本地仓库中加文件或文件夹:

git add ./example
git add readme.txt
2.往本地仓中提交修改

注:每修改一次,提交前需要git add一次.add表示“选中”,commit是“上传”

git add readme.txt
git commit -m "This is the first modification."
//或者用下边的代替上边两句:(慎用这种做法,最好采取上边分步做法)
git commit -a -m "This is the first modification"
3.查看版本库中的文件:

查看:

git status//查看修改那些文件
git log//查看版本历史,信息包括谁在什么时刻提交了什么,备注是什么
git ls-fies//查看版本库中哪些文件已经被tracked
4.管理本地仓中的文件

管理的原则:
所有的本地文件删除、重命名、权限改变,都需要用git,这样才能同时更新版本库中的信息和文件系统的信息。否则版本库会认为信息不一致,从而文件的更改记录也丢失了。
删除文件夹或文件
删除: (删掉时也会删掉本地文件系统的东西,也就是,啥都没有了:))
git rm filename
只删掉.git本地仓库记录,不删除文件系统中的文件
git rm -r –cached myFolder
删除撤销:
git checkout –filename
重命名
git mv old_name new_name
更改权限(放弃记录权限)
有时因为不小心更改了根目录的权限导致git记录了所有文件权限,看起来很杂乱,因此我们可以让git忽略文件权限更改:
git config core.filemode false

二、远程仓操作

  1. 添加远程仓库(git或bitbucket):
    git remote add oneName //oneName 随意指定
    git remote add origin git@github.com:michaelliao/learngit.git

  2. 要查看当前配置有哪些远程仓库:
    git remote show name//显示所有信息
    git remote//列出已有的远程仓
    git remote -v//查看远程仓url位置

  3. 把本地仓的东西传到远程仓上
    把当前分支master推送到远程origin仓库:
    //第一次提交
    git push -u origin master
    //Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
    //第二次提交
    git push origin master

  4. 删除远程仓、重命名:
    git remote remove name
    git remote rename origin origin_test

  5. 下传与更新版本
    git fetch //从远程仓库下载新分支与数据(不能在与该远程分支关联的当前分支上fetch,必须切换到其他分支上)
    git pull//该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的分支
    git push //上传
    //克隆(只是下载)
    git clone git@github.com:michaelliao/gitskills.git
    git fetch test_name//从 远程库拉取代码。


附录

1.参考廖雪峰的git文章:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
关于git config 其他配置信息参看:https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%88%9D%E6%AC%A1%E8%BF%90%E8%A1%8C-Git-%E5%89%8D%E7%9A%84%E9%85%8D%E7%BD%AE
2.《常见报错》:
1>Permission denied (publickey).
fatal: Could not read from remote repository
solution:
https://help.github.com/articles/generating-an-ssh-key/
Pasted from: http://write.blog.csdn.net/mdeditor

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值