Git 什么时候用什么指令
转自:http://blog.gogojimmy.net/2012/02/29/git-scenario/
- Git 教學(1):Git的基本使用
- Git 教學(2):Git Branch 的操作與基本工作流程
如何安裝 Git
如何設定 Git
- Mac : Set Up Git on Mac
- Linux : Set Up Git on Linux
- Windows : Set up Git on Windows
如何開始一個 Git Respository
- 在專案底下使用
git init
開始一個新的 Git repo. - 使用
git clone
複製一個專案
- 在專案底下使用
如何將檔案加入 Stage
- 使用
git add
將想要的檔案加入 Stage. git add .
會將所有編修過的檔案加入 Stage (新增但還沒 Commit 過的檔案並不會加入)
- 使用
如何將檔案從 Stage 中移除(取消add)
git reset HEAD 檔案名稱
如何將檔案提交(commit)
- 使用
git commit
會將 Stage 狀態的檔案做 Commit 動作 git commit -m "commit訊息"
可以略過編輯器直接輸入 commit 訊息完成提交。git commit -am "commit訊息"
等同於先git add .
後略過編輯器提交 commit。
- 使用
如何修改/取消上一次的 commit
git commit --amend
修改上一次的 commit 訊息。git commit --amend 檔案1 檔案2...
將檔案1、檔案2加入上一次的 commit。git reset HEAD^ --soft
取消剛剛的 commit,但保留修改過的檔案。git reset HEAD^ --hard
取消剛剛的 commit,回到再上一次 commit的 乾淨狀態。
分支基本操作(branch)
git branch
列出所有本地端的 branch。git branch -r
列出所有遠端的 branch。git branch -a
列出所有本地及遠端的 branch。git branch "branch名稱"
建立一個新的 branch。git checkout -b "branch名稱"
建立一個新的 branch 並切換到該 branch。git branch branch名稱 起始點
以起始點作為基準建立一個新的 branch,起始點可以是一個 tag,branch 或是 commit。git branch --track branch名稱 遠端branch
建立一個 tracking 遠端 branch 的 branch,這樣以後 push/pull都會直接對應到該遠端的branch。git branch --set-upstream branch 遠端branch
將一個已存在的 branch 設定成 tracking 遠端的branch。git branch -d "branch 名稱"
刪除 branch。git -r -d 遠端branch
刪除一個 tracking 的遠端 branch,例如git branch -r -d wycats/master
git push repository名稱 :遠端branch
刪除一個 repository 的 branch,通常用在刪除遠端的 branch,例如git push origin :old_branch_to_be_deleted
。git checkout branch名稱
切換到另一個 branch(所有修改過程會被保留)。
遠端操作(remote)
git remote add remote名稱 remote網址
加入一個 remote repository,例如git remote add github git://github.com/gogojimmy/test.git
git push remote名稱 :branch名稱
刪除遠端 branch,例如git push origin :somebranch
。git pull remote名稱 branch名稱
下載一個遠端的 branch 並合併(注意是下載遠端的 branch 合併到目前本地端所在的 branch)。git push
類似於 pull 操作,將本地端的 branch 上傳到遠端。
合併操作(merge)
git merge branch名稱
合併指定的 branch 到目前的 branch。git merge branch名稱 --no-commit
合併指定的 branch 到目前的 branch 但是不會產生合併的 commit。git cherry-pick SHA
將某一個 commit 的內容合併到目前 branch,指定 commit 是使用該 commit 的 SHA 值,例如git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544
。
暫存操作(stash)
git stash
將目前所做的修改都暫存起來。git stash apply
取出最新一次的暫存。git stash pop
取出最新一次的暫存並將他從暫存清單中移除。git stash list
顯示出所有的暫存清單。git stash clear
清除所有暫存。
常見問題:
- 我的 code 改爛了我想全部重來,我要如何快速回到乾淨的目錄?
git reset --hard
這指令會清除所有與最近一次 commit 不同的修改。
- merge 過程中發生 confict 我想放棄 merge,要如何取消 merge?
- 一樣使用
git reset --hard
可以取消這次的 merge。
- 一樣使用
- 如何取消這次的 merge 回到 merge 前的狀態?
git reset --hard ORIG_HEAD
這指令會取消最近一次成功的 merge 以及所有你在這次 merge 後所做的修改。
- 如何回復單獨檔案到原本 commit 的狀態?
git checkout 檔案名稱
這指令會將已經被修改過的檔案回復到最近一次 commit 的樣子。
- 我的 code 改爛了我想全部重來,我要如何快速回到乾淨的目錄?
Git 什么时候用什么指令的更多相关文章
- Git 基本知识与常用指令
一.Git代码状态转换图 其中: 未被Git跟踪的状态为unstage状态: 已被Git跟踪的状态为stage状态(stage:阶段),因此包括staging状态和staged状态. untrack ...
- 大白话说GIT常用操作,常用指令git操作大全
列一下在开发中用的比较多的git指令 git clone https://github.com/chineseLiao/Small-career // 克隆远程仓库到本地 git add . // 把 ...
- 对git的理解及常用指令
以前总听说git[分布式版本控制系统]自己愣是搞不懂它到底要干哈-什么叫版本控制系统根本理解不了.现在工作需要必须要用到,结果好像就突然懂了git是干什么滴. 所以!原理这个东西的理解是要建立在大量的 ...
- Git版本控制原理和常用指令说明
平时在Android Studio开发Android项目,习惯了点击右键或图标直接拉新fetch,pull,commit和push.但是必要的时候还得在终端输入命令行.比如正在开发新版本v3.0,老板 ...
- Git使用和介绍-基础指令
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52210625 本文出自: [HansChen的博客] 查看已有配置 取消已有的配置 ...
- 使用git的几个常用指令
1. 移除git:rm -rf .git/ 2.查看结果:ls -al 3.语法糖(查看列表):ll 4.将远程库的内容,更新到本地:git pull origin master: 5.添加到本地仓库 ...
- Git各个状态之间转换指令总结
基本状态标识 A- = untracked 未跟踪 A = tracked 已跟踪未修改 A+ = modified - 已修改未暂存 B = staged - 已暂存未提交 C = committe ...
- Git 几个重要操作指令对比
1.git merge 和 git rebase https://blog.csdn.net/wh_19910525/article/details/7554489 http://gitbook.li ...
- 使用代码管理工具(git)管理代码的常用指令合集
create a new repository on the command line echo "# test" >> README.md git init git ...
随机推荐
- PageAdmin CMS网站建设教程:如何创建及管理栏目?
PageAdmin CMS网站制作教程:如何创建及管理栏目?1.登录管理后台后,在顶部导航中找到网站,并点击: 2.在左侧栏目中找到栏目管理,并点击: 3.进入到栏目管理页面,在顶部找到菜单,点击添加 ...
- 【转】Bri's改装笔记
网上关于三菱蓝瑟的改装方案的文章不少,但在以不换发动机为前提的理性改装确是这两篇和东南汽车俱乐部科仔的那篇<4G18的低成本NA玩法>最具参考价值. 小排量NA车的乐趣不在于跟人比直线加速 ...
- VC API常用函数简单例子大全(1-89)
第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...
- jzoj5906
我們首先發現,每一條邊都至少走1次,因為我們必須走到每一個節點按按鈕 如果我們不走一個節點,說明這個節點已經有傳送門了,但是必須走到這個節點開傳送門,矛盾 然後我們發現,每一條邊至多經過2次 如果我們 ...
- FunDA(12)- 示范:强类型数据源 - strong typed data sources
FunDA设计的主要目的是解决FRM(Functional Relation Mapping)如Slick这样的批次型操作工具库数据源行间游动操作的缺失问题.FRM产生的结果集就是一种静态集合,缺乏动 ...
- FunDA(10)- 用户功能函数模式:User Function Model
前面我们提过:FunDA就像一个管道(PipeLine).管道内流动着一串数据(Data)或者运算指令(Action).管道的源头就是能产生纯数据的数据源(Source),跟着在管道的中间会有一些节点 ...
- Linux零碎知识
ln -s用法: 创建软连接,命令如下: ln -s / /home/good/linkname ln的链接分软链接和硬链接两种: .软链接就是:“ln –s 源文件 目标文件”,只会在选定的位置上生 ...
- Spring常用知识点总结
1. Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB. 控制反转(IOC):Spring使用控制反转技术实现了松耦合.依赖被 ...
- mysql中授权其它电脑链接指令。
grant all privileges on yourDatabaseName to 'user'@'databaseIPAddress' identified by 'password' with ...
- innodb 源码分析 --锁
innodb引擎中的锁分两种 1)针对数据结构, 如链表 互斥锁 读写锁 http://mysqllover.com/?p=425 http://www.cnblogs.com/justfortast ...