1.初始化一个空的git repository
打开terminal,cd到一个空文件夹:
cd /Users/deng/Desktop/learngitcommand
然后使用git init命令,返回:Initialized empty Git repository in /Users/deng/Desktop/learngitcommand/.git/
初始化empty repository成功
2.添加修改
给上述文件夹添加一个git.txt文档,并在文档中编辑:first alter,将此文档提交到git repository。
git status查看当前状态
git add .添加所有修改到暂存区
git commit -m ‘commit log’ 提交修改到本地repository
git push origin master 将本地的修改同步到远程repository
3.撤销修改
如果修改还没有被添加到缓存区,可以直接打开git.txt然后把修改删除也可以使用命令git checkout git.txt
如果已经添加到暂存区,可以使用命令git reset HEAD git.txt,从暂存区删除,然后git checkout git.txt撤销修改
如果已经提交到repository可以使用git reset --hard HEAD^(git reset --hard version)命令,或者 git revert version
前者和后者的区别:前者会把本次的commit删除,后者则是在本次commit的基础上添加一个新的commit
4.常用的命令
git log:查看提交日志
git log --pretty=oneline:查看简洁的提交日志
git diff:查看当前和repository的不同,如果已经添加到暂存区不可用
git reflog:查看所有HEAD的历史
git show version(git.txt):显示此版本的变化(某个文件)
git pull origin chat:�更新本地chat分支为最新
git stash :将当前修改储藏
git stash list :储存列表
5.新建分支并更新到远端
git checkout -b �chat:创建并切换到chat分支,相当于 git branch chat创建chat分支,git checkout chat切换chat分支,两个命令
git push origin chat:将此分支添加更新到远程
git add -a. git commit -m 'commit log' git push origin chat
6.分支chat合并到master上
git checkout master:切换到master分支
git merge chat:将chat分支合并到master上
git push origin master:将合并后的修改推送到远程的master分支上
7.分支相关
git branch:列出本地已经存在的分支,并以*标记当前分支
git branch -r:列出所有远程分支
git branch -a:列出本地分支和远程分支
git branch -m | -M oldbranchname newbranchname:重命名分支,如果newbranchname已经存在,需要使用-M进行强制命名
git branch -d | -D branchname:删除本地branchname分支,-D强制删除
git push origin空格:branchname:原理是把一个空分支push到server上,相当于删除该分支
8.clone repository
获得远程repository地址,cd到本地项目文件夹
git clone git@git.local.ybzf.com:weixin/weixin-ios.git :克隆远程仓库到本地文件夹
注:当你从远程克隆项目,并做修改之后需要push到origin,可能你会遇到下面的错误:
remote:GitLab: You don't have permission
error: failed to push some refs to 'http://xxx/xxx/xxx_HTML.git'
意思就是你不具有push的权限。
解决办法是:需要项目的所有者修改当前分支被保护的权限,步骤是:
在项目的【Setting】中的【Protected branches】可以设置哪些分支是被保护的,默认情况下【master】分支是处于被保护状态下的,develop角色的人是无法提交到master分支的,在下面的【Developers can push】打上钩就可以了。
然后就可以重新push了。