该文章均由本人阅读外国文献之后整理而成,大多翻译或转译自该网站:
https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud
基础概念
- 三棵树
TREE\STAGE\HEAD
实验
初始化、普通的add和commit
- 随便搞个文件夹,使用
git init
来初始化文件夹 - 创建个随便啥文件,使用
git add filename
或者git add *
来stage它,执行git commit -m "your log"
来push它,带-m
参数代表后面跟着log - 看看自己的公钥在不在user/username/.ssh里面,没有就网上找个方法生成一下密钥,贴到gitlab/github
连接远端
- 找到一个项目,复制下你的ssh远端网址,执行
git remote add origin <your_remote_address>
来添加远端,名字代号origin
- 从远端初始化一版数据,一般是执行
git pull 远端名 分支名
然后执行git merge
。由于新版本git有些蛋疼的设置,要在pull后面多加个参数防止报错--allow-unrelated-histories
中间git会很鸡贼地叫你一定要说明为啥这么搞,这个时候菜鸡的你第一次遇到了编辑器。这是个vim编辑器,vim编辑器有几种模式,总而言之现在就先按下esc退出编辑模式,然后打下:wq回车保存并退出,然后git就会继续执行了。另,q是不保存退出,w讲道理是write的意思。
merge之前可以先执行git diff <dst_branch> <ori_branch>
来看看区别。 - 提交数据
git push origin master
这个时候已经不需要输入log了,不同于svn,log在你commit到本地的head的时候已经写了
提交的时候发现很坑的一个地方,到分支上会显示你名字。。所以如果不想暴露真名的话要重新改一下git的设置吧
看log
git log
出来的是一个文档,看完:wq退出
参数:
--author=authorname 查看某个人的操作
git log --graph --oneline --decorate --allgit log --graph --oneline --decorate --all
可用图像的方式查看log
修正head内容
-
git checkout -- <filename>
这会修正head上的文件,但是stage上的不会变。 - 完全revert本地目录的东西
git fetch origin
git reset --hard origin/master
分支
详见同文件夹下别的文章
TAG
详见同文件夹下别的文章
网友评论