【Git 】命令总结记录
之前都是用TortoiseGit 提交代碼到GitHub,發(fā)現(xiàn)會(huì)遇到各種問題,沒有直接在git Bash中操作方便, 用到了一些git命令,做一下記錄。
文章目錄
- 一、提交代碼
- 二、合并代碼
- other
- 創(chuàng)建分支:
- 查看所有分支
- 切換分支
- 合并某分支到當(dāng)前分支:
- 創(chuàng)建+切換分支:
- 撤銷 / 回滾
- 刪除分支(遠(yuǎn)程/本地)
- 儲(chǔ)藏(Stashing)
- 刪除本地修改
- git pull => git fetch && git merge
- Git global setup
- Create a new repository
- Existing folder
- Existing Git repository
- 強(qiáng)制合并某個(gè)遠(yuǎn)程分支
- 拉取 遠(yuǎn)程倉庫中 dev 分支上的代碼
- 刪除 本地分支
- 在本地BranchA上修改的內(nèi)容,切換到 本地BranchB 上
- 在master分支合并特定分支的某一次提交記錄
- .gitignore 失效
一、提交代碼
1、提交代碼到本地庫中
git commit -m '描述內(nèi)容'
2、拉取該分支下的內(nèi)容,與自己在本地庫改寫的合并
git pull origin <分支名稱>
3、提交代碼到github上
git push origin <分支名稱>
二、合并代碼
1、查看所有分支(其中帶 * 號(hào)的:當(dāng)前使用分支)
git branch -a
2、切換分支
git checkout <分支名稱>
3、合并某分支到當(dāng)前分支:
git merge <分支名稱> : 把develop 合并到master–> git merge develop
4、提交合并的代碼 :
git pull :拉取當(dāng)前倉庫的代碼
git push origin <分支名稱> 合并提交 到主分支上
other
用到的git命令:
創(chuàng)建分支:
git branch <分支名稱>
查看所有分支
git branch -a
切換分支
git checkout <分支名稱>
合并某分支到當(dāng)前分支:
git merge <分支名稱>
創(chuàng)建+切換分支:
git checkout -b <分支名稱>
撤銷 / 回滾
在本地 git log --oneline -n10 git reset --hard <commit id> git push -fhttps://blog.csdn.net/ligang2585116/article/details/71094887
刪除分支(遠(yuǎn)程/本地)
https://blog.csdn.net/qq_32452623/article/details/54340749
儲(chǔ)藏(Stashing)
應(yīng)用場(chǎng)景: 當(dāng)你正在進(jìn)行項(xiàng)目中某一部分的工作,里面的東西處于一個(gè)比較雜亂的狀態(tài),而你想轉(zhuǎn)到其他分支上進(jìn)行一些工作。問題是,你不想提交進(jìn)行了一半的工作,否則以后你無法回到這個(gè)工作點(diǎn)。解決這個(gè)問題的辦法就是git stash命令。
https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%82%A8%E8%97%8F%EF%BC%88Stashing%EF%BC%89
刪除本地修改
1. git clean -df 2. git reset --hard 第一個(gè)命令只刪除所有untracked的文件,如果文件已經(jīng)被tracked, 修改過的文件不會(huì)被回退。 而第二個(gè)命令把tracked的文件revert到前一個(gè)版本,對(duì)于untracked的文件(比如編譯的臨時(shí)文件)都不會(huì)被刪除。 --------------------- 作者:王的璋 來源:CSDN 原文:https://blog.csdn.net/qilvmilv/article/details/53559939 版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!git pull => git fetch && git merge
Git global setup
git config --global user.name "<用戶名>" git config --global user.email "<郵箱>"Create a new repository
git clone git@<服務(wù)器地址>: <目錄路徑>/website.git cd website touch README.md git add README.md git commit -m "add README" git push -u origin masterExisting folder
cd existing_folder git init git remote add origin git@<服務(wù)器地址>: <目錄路徑>/website.git git add . git commit -m "Initial commit" git push -u origin masterExisting Git repository
cd existing_repo git remote rename origin old-origin git remote add origin git@<服務(wù)器地址>: <目錄路徑>/website.git git push -u origin --all git push -u origin --tags強(qiáng)制合并某個(gè)遠(yuǎn)程分支
git fetch --all git reset --hard origin/master (這里master要修改為對(duì)應(yīng)的分支名)拉取 遠(yuǎn)程倉庫中 dev 分支上的代碼
git clone xxxxxxx/test.git cd test git pull origin dev刪除 本地分支
查看項(xiàng)目的分支們(包括本地和遠(yuǎn)程) 命令行 : $ git branch -a 例如,$ git branch -a 先切換到已有的一個(gè)分支,再刪除本地分支 命令行 : $ git branch -d <BranchName>在本地BranchA上修改的內(nèi)容,切換到 本地BranchB 上
## 方法一:(推薦) 1. 在 BranchA 先儲(chǔ)藏 $ git stash2. 切換到 BranchB $ git checkout B3. 在 BranchB 上彈出 儲(chǔ)藏內(nèi)容 $ git stash pop ## 方法二: 1. 不在 BranchA 上 git commit 2. 在 BranchA 上 新建 BranchB$ git checkout -b BranchB3. 切換到 BranchB$ git checkou BranchB這時(shí)候 修改的內(nèi)容在 BranchA 和 BranchB 上都有 4. 在 BranchB 上 commit $ git commit -a 修改保留在 BranchB 上5. 切換到 BranchA BranchA 上沒有保留修改的內(nèi)容在master分支合并特定分支的某一次提交記錄
場(chǎng)景:feature分支上的Commit 62ecee非常重要,它含有一個(gè)bug的修改,或其他人想訪問的內(nèi)容。無論什么原因,你現(xiàn)在只需要將62ecee 合并到master,而不合并feature上的其他commits,所以我們用git cherry-pick命令來做:
1. 查看 特定分支branchA 上的 commit 歷史記錄 $ git checkout branchA $ git log commit 62ecee 2. 切換至master 分支 $ git checkout master3. 合并 提交記錄 62ecee $ git cherry-pick 62ecee.gitignore 失效
原因是:在本地存有track 緩存,清除掉,重新提交就好
git rm -r --cached . git add . git commit -m 'update .gitignore'總結(jié)
以上是生活随笔為你收集整理的【Git 】命令总结记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux】服务器常用命令
- 下一篇: 【 Laravel 】日 常 整 理 记