赞
踩
github是一种基于git的代码托管平台,我们在本地的电脑上安装上git后,并建立本地仓库,然后与github远程仓库有建立连接,就可以实现代码的上产(push)和下载(pull)。在团队开发过程中,多个成员可以共同向远程仓提交代码,共同维护代码,提高开发效率。既然github是基于git的,那么git是什么呢?git就是一个软件,官方名称是版本控制系统(工具),git学会了github就水到渠成了。
git的提交是文件历史状态的快照
,也就是历史仓库。
Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。在若干次提交后,你其实已经有了一个指向最后一次提交对象的 master 分支,它在每次提交的时候都会自动向前移动。
Git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。它是一个指向你正在工作中的本地分支的指针(将 HEAD 想象为当前分支的别名)。
每次提交后 HEAD 随着当前分支一起向前移动 。切换到哪个分支,哪个分支就成为自动向前移动的指针HEAD。
就是一个暂存区,通过git add 将当前目录文件添加到索引。提交文件到历史仓库分两步,先add文件到索引,然后commit将暂存区的文件到历史仓库。
合并分两种情况,fast-forward(快进),分叉合并。前者中两个分支是直系亲属,后者,没有直系关系,但是有共同的祖先。
本地建立库(项目)
mkdir test
touch readme.md
git init #初始化
git status #查看git状态,随时都可以敲
添加并提交文件
git add <filename>
git commit -m "my first commit"
新建分支并切换到分支
git branch <branchname> #新建分支
git checkout <branchname> #切换分支
git branch -D <branchname> #删除分支
打标签
git tag v1.0 #为当前状态打标签
git tag #查看所有历史标签
git checkout v1.0 #切换到v1.0的状态
git常用命令
diff: 比较 两次提交/两个分支/两个文件 的不同
git diff <id1> <id2> #比较两次提交的不同,提交的id号可以通过 git log 查看
git diff <branch1> <branch2> #比较两个分支的不同
git diff <file1> <file2> #比较两个文件的不同
checkout: 切换分支/tag/提交 (撤销)
git checkout v1.0 #切换tag
git checkout <COMMIT_ID> #切换某次提交之前的状态
git checkout HEAD~ #撤销最后一次提交
git checkout <branchname> #切换到分支
stash: 保留当前未完成的工作,用户可以着手去完成别的工作。
git stash #把当前分支没有commit的代码暂存起来
git stash list #查看暂存记录
git stash apply #代码恢复
git stash drop #删除上一条记录
merge: 合并分支
#切换到主分支,然后将分支1合并进来
git checkout master
git merge branch1
#注:rebase 也有合并的功能,与merge有所区别. 合并之后有时会有冲突。
分支管理
git branch #查看本地分支
git branch -r #查看远程分支
git checkout branchName origin/branchName #将远程分支迁移到本地
查看所有与本地关联的远程仓
git remote
远程仓的移除和重命名
git remote rename <old_name> <new_name> #移除
git remote rm <name> #重命名
撤销:reset 与 checkout 对比
reset :
checkout :
# reset
git reset HEAD~ #移动HEAD和当前分支到上一次提交的节点,即撤销提交,索引改变,但是工作目录不变
# => 还原分支和索引
git reset [HEAD~] <files> #将历史提交中的文件还原到索引,工作目录不变
# checkout
git checkout <branch_name> #切换分支,只改变head指向
git checkout HEAD~ #将head指向上一次提交的节点,同时恢复索引和工作目录,注意分支指向不动
git checkout [HEAD~] <files> #将历史提交中的文件还原到索引和工作目录
总结:
生成ssh key
ssh-keygen -t rsa
之后输入三次回车,在用户目录下生成两个文件,id_rsa 和id_rsa.pub
在github添加ssh,将id_rsa.pub的内容复制到github的添加公钥的位置
测试
ssh -T git@github.com
出现 successful 说明成功。
#方式1:克隆远程到本地->建立关联->修改提交
git clone git@github.com:Daibingh/hello.git
#在修改clone的项目后
git push origin master
#方式2:本地有完整项目->与远程仓建立关联->远程本地同步
git remote add origin git@github.com:Daibingh/test.git
git push origin master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。