一.初识GIT
1.git是什么
-代码以及团队协作同步工具
-可以进行版本控制,版本追踪,代码储存共享等
2.为什么GIT最火
-和svn比,他免费,而且可以断网更新保存在本地(commit),有网络重新上传(push)
-和mercurial比。。我也不知道~~反正我不会
3.好用的git服务商
-bitbucket:免费的,支持私有,强烈推荐
-github:目前最大的,但是私有收费,不适合小型商业(~有钱的公司除外)
-自己搭建一个~~详细教程请百度,大约20分钟就可以,有兴趣的同学可以去尝试下
4.好用的git管理工具
-sourcetree;bitbucket旗下的git管理工具,需要bitbucket账号登录才行(强力推荐)
-github客户端
-gitbash:另推荐两个不错的terminal的工具(unix/os下:iterm,windows下:ConEmu)
二.git安装和基本配置
1.git本地安装(windows可以直接下载)
sudo apt-get install git
2.git本地配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global user.password "12321312"
3.基本git流程(绝大多数情况这几行够用)
-获取远程代码:
git clone http://www.github.com/test.git
-更新远程代码:
git pull
-本地文件添加(或者git add * ,*表示全部):
git add f1.txt
-本地文件提交(-m表示comment, 后面是评论):
git commit -m 'add file'
-本地文件推送(origin master是optional,表示推送到master的branch上):
git push origin master
4.记住每次写代码时候,一定要先pull后push
三.git操作重点解释
1.git checkout使用
-回归版本:
git checkout commit_id
-更换branch:
git checkout master
-单独恢复一个文件(这个文件如果commited了,则回到commited的版本,否则直接回归源文件,如果被删了本地也能找回来):
git checkout --file.txt
2.GIT恢复(Reset)
-(commit_id是可选的,不写默认回复到最后一个提交的commit)
git resest --hard commit_id
3.stash的应用
-隐藏当前修改,但是不commited只是临时储存
-场景:当遇到突然线上bug但是手头新的任务写到了一半,这时候可以先用git stash隐藏本地新的修改,修复bug后再用git stash pop继续原有工作
-隐藏文件
git stash file.html
-检查stash(此时git status下没有东西)
git stash list
-恢复文件
方法一:
git stash apply
git stash drop
方法二:
git stash pop
四,GIT分支处理
1.基本操作
-创建分支(会自动从当前分支创建):
git branch new_b_name
-创建并转到新分支
git checkout -b new_branch_name
-删除分支
git branch -d new_branch_name
-合并分支(将b2合并到b)
git checkout b_1
git merge b2
注:如果有冲突用vim打开,,只要把所有HEAD报错的位置查找好就好
五.GIT远程处理
1.初始化
-进入到项目根目录:cd workingdir
-将本地项目添加到远程的git链接:
git remote add origin git@github.com:test/test.git
-项目推送:
git push -u origin master(第一次推送)
git push origin master(以后推送)
2.查看远程分支权限和状态
git remote -v
origin git@github.com:test/test.git(fetch)
origin git@github.com:test/test.git(push)
#第一行表示有fetch权限,第二行表示有push权限
六.Tag标签管理
1.创建标签
-换到需要打tag的分支:
git checkout master
-创建tag(commit_id和m是可选的,没有的话默认到最后一个commit):
git tag v1.0 -m 'new tag get' commit_id
2.展示tag
git show tag_name
3.删除tag
-本地删除:
git tag -d v0.1
-tag标签推送:
git push origin v0.1
七.Gitignore处理
-一个隐藏的文件,在根目录下,名字是.gitignore (没有的话可以自己手动创建)
-示例
abc.html
*.py #*代表全部
八.Git其他命令
-展示当前git状态(包含commit和untracted的文件):
git status
-文件比较:
git diff commit_1 commit_2
-日志(log之后的命令是可选的):
git log --graph branch_name
-删除文件:
git rm text.txt
八.其他
1.创建ssh key
-生成id_rsa私钥和id_rsa.pub公钥
-在github或者bitbucket的accouont setting里面添加公钥
-在本地机器添加私钥
ssh-keygen -t rsa -c 'frank@gmail.com'
2.fetch和pull的比较
-共同点;都是从远程获取
-不同点:fetch不自动merge,pull自动merge
3.commit和push区别
-commit只是暂存在本地,相当于本地提交数据;push代表提交到远程(提交到远程时候如果和远程不一致需要merge,一般先用pull)
4.最好用例
-pull-add-commit-push
5.普通文件比较
windows(fc):fc old.hmtl new.html
mac(diff):diff -u old.html new.html
6.vpn搭建
-用amazon搭建,免费一年,网上有教程
网友评论