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查看當前狀態(tài)
git add .添加所有修改到暫存區(qū)
git commit -m ‘commit log’ 提交修改到本地repository
git push origin master 將本地的修改同步到遠程repository
3.撤銷修改
如果修改還沒有被添加到緩存區(qū)窟社,可以直接打開git.txt然后把修改刪除也可以使用命令git checkout git.txt
如果已經(jīng)添加到暫存區(qū)券勺,可以使用命令git reset HEAD git.txt,從暫存區(qū)刪除,然后git checkout git.txt撤銷修改
如果已經(jīng)提交到repository可以使用git reset --hard HEAD^(git reset --hard version)命令灿里,或者 git revert ?version
前者和后者的區(qū)別:前者會把本次的commit刪除关炼,后者則是在本次commit的基礎(chǔ)上添加一個新的commit
4.常用的命令
git log:查看提交日志
git log --pretty=oneline:查看簡潔的提交日志
git diff:查看當前和repository的不同,如果已經(jīng)添加到暫存區(qū)不可用
git reflog:查看所有HEAD的歷史
git show version(git.txt):顯示此版本的變化(某個文件)
git pull origin chat:?更新本地chat分支為最新
git stash :將當前修改儲藏
git stash list :儲存列表
5.新建分支并更新到遠端
git checkout -b ?chat:創(chuàng)建并切換到chat分支匣吊,相當于 git branch chat創(chuàng)建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.分支相關(guān)
git branch:列出本地已經(jīng)存在的分支缀去,并以*標記當前分支
git branch -r:列出所有遠程分支
git branch -a:列出本地分支和遠程分支
git branch -m | -M oldbranchname newbranchname:重命名分支侣灶,如果newbranchname已經(jīng)存在,需要使用-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的權(quán)限凡怎。
解決辦法是:需要項目的所有者修改當前分支被保護的權(quán)限,步驟是:
在項目的【Setting】中的【Protected branches】可以設(shè)置哪些分支是被保護的赊抖,默認情況下【master】分支是處于被保護狀態(tài)下的统倒,develop角色的人是無法提交到master分支的,在下面的【Developers can push】打上鉤就可以了氛雪。
然后就可以重新push了房匆。