新建倉庫並提交git
# 初始化本地倉庫 git init # 關聯遠程倉庫 git remote add origin git@vesync.com:cloudTeam/levi # 建立分支,切換分支 git checkout -b feature-test # 添加文件, cd到要上傳的文件夾下, add . 是上傳全部文件 # git add命令將要體檢的文件的信息添加到索引庫中,以準備爲下一 # 次提交分段的內容 git add . # git commit命令用於將更改的記錄提交到存儲庫,將索引的當前內 # 容與描述信息一塊兒存儲在新的提交中 git commit -m "commit" # git push命令用於將本地分支的更新推送到遠程分支 git push origin feature-test
刪除文件shell
# 刪除遠程分支文件,不刪除本地文件 git rm --cached thisfile git commit -m "delete this file" git push origin feature-test # 刪除遠程分支文件夾,不刪除本地 git rm -r --cached thisfolder git commit -m "delete this folder" git push origin feature-test
git fetch服務器
# git fetch命令用於從另外一個存儲庫下載對象和引用 # 更新全部分支 git fetch # 更新特定分支 git fetch feature-test # 從遠程命名空間複製全部分支,並將其存儲到本地的 # .git\refs\remotes\origin命名空間中 git fetch origin
git pullide
# git pull命令的做用是:取回遠程主機某個分支的更新,再與指定的 # 本地分支合併,能夠理解爲 git fetch 後跟 # git merge FETCH_HEAD兩個操做的集合 # 更準確的說是:git pull使用給定的參數運行git fetch,並調用 # git merge將檢索到的分支頭合併到當前的分支中 # 獲取遠程分支feature—test,與本地master分支合併 git pull origin feature-test:master # 獲取遠程分支與當前分支合併 git pull origin feature-test
Git修改分支名稱gitlab
git branch -m oldName newName
git branch -m oldName newName
git push --delete origin oldName
git push origin newName
git branch --set-upstream-to origin/newName
Git如何clone非master分支的代碼fetch
# 先clone master分支 git clone git@gitlab.xxx.com:xxxxx.git # 進入clone的文件夾,會看到當前的分支爲master # 查看全部分支 git branch -a # 切換到須要clone的分支 git checkout origin/dev-xxx
誤刪除了遠程分支this
# 想辦法找到最新一次的commit SHA值 # SHA值能夠經過gitLab上的提交記錄查看,也能夠使用git reflog命令 git branch branchName SHA # 而後再將此分支推送到遠端 git push origin branchName
git pull出現衝突code
# 保留剛纔本地修改的代碼,並把git服務器上的代碼pull到本地 git stash git pull origin master git stash pop # 徹底覆蓋本地的代碼,只保留服務器端代碼,則直接回退到上一個版本 git reset --hard git pull origin master
git pull後恢復到原來版本對象
# git pull後發現不是想要的版本,須要回退 # 查看本地分支的變更記錄 git reflog loacal_branch # 利用commit id恢復到以前的位置 git reset --hard <COMMIT_ID>
報錯:Updates were rejected because the tip of your current branch is behind
索引
git push -u origin master -f
git branch newBranch git push -u origin newBranch
撤銷commit
#僅撤回commit操做,代碼依然保留 #HEAD^指回退上一個版本 git reset --soft HEAD^ #若提交了2次commit,能夠使用HEAD~2 #參數區別 #不刪除工做空間改動代碼,撤銷commit,而且撤銷git add . 操做 --mixed #不刪除工做空間改動代碼,撤銷commit,不撤銷git add . --soft #刪除工做空間改動代碼,撤銷commit,撤銷git add . --hard
強制覆蓋本地代碼
git reset --hard origin/dev git pull origin/dev