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了。