GIT命令集合简明列表

Git 是分散式的版本控制系統, 從架設、簡易操作、設定, 此篇主要是整理 基本操作、遠端操作 等.

註: Git 的範圍太廣了, 把這篇當作是初學入門就好了.

注意事項:

由 project/.git/config 可知: (若有更多, 亦可由此得知)

origin(remote) 是 Repository 的版本
master(branch) 是 local 端, 正在修改的版本
平常沒事不要去動到 origin, 如果動到, 可用 git reset --hard 回覆到沒修改的狀態.

Git 新增檔案

git add . # 將資料先暫存到 staging area, add 之後再新增的資料, 於此次 commit 不會含在裡面.
git add filename
git add modify-file # 修改過的檔案, 也要 add. (不然 commit 要加上 -a 的參數)
git add -u # 只加修改過的檔案, 新增的檔案不加入.
git add -i # 進入互動模式

Git 刪除檔案

git rm filename
Git 修改檔名、搬移目錄

git mv filename new-filename
Git status 看目前的狀態

git status # 看目前檔案的狀態

Git Commit提交修改

git commit
git commit -m ‘commit message‘
git commit -a -m ‘commit -message‘ # 將所有修改過得檔案都 commit, 但是 新增的檔案 還是得要先 add.
git commit -a -v # -v 可以看到檔案哪些內容有被更改, -a 把所有修改的檔案都 commit

Git 產生新的 branch

git branch # 列出目前有多少 branch
git branch new-branch # 產生新的 branch (名稱: new-branch), 若沒有特別指定, 會由目前所在的 branch / master 直接複製一份.
git branch new-branch master # 由 master 產生新的 branch(new-branch)
git branch new-branch v1 # 由 tag(v1) 產生新的 branch(new-branch)
git branch -d new-branch # 刪除 new-branch
git branch -D new-branch # 強制刪除 new-branch
git checkout -b new-branch test # 產生新的 branch, 並同時切換過去 new-branch

與 remote repository 有關:

git branch -r # 列出所有 Repository branch
git branch -a # 列出所有 branch

Git checkout 切換 branch

git checkout branch-name # 切換到 branch-name
git checkout master # 切換到 master
git checkout -b new-branch master # 從 master 建立新的 new-branch, 並同時切換過去 new-branch
git checkout -b newbranch # 由現在的環境為基礎, 建立新的 branch
git checkout -b newbranch origin # 於 origin 的基礎, 建立新的 branch
git checkout filename # 還原檔案到 Repository 狀態
git checkout HEAD . # 將所有檔案都 checkout 出來(最後一次 commit 的版本), 注意, 若有修改的檔案都會被還原到上一版. (git checkout -f 亦可)
git checkout xxxx . # 將所有檔案都 checkout 出來(xxxx commit 的版本, xxxx 是 commit 的編號前四碼), 注意, 若有修改的檔案都會被還原到上一版.
git checkout -- * # 恢復到上一次 Commit 的狀態(* 改成檔名, 就可以只恢復那個檔案)

Git diff检查版本差异

git diff master # 與 Master 有哪些資料不同
git diff --cached # 比較 staging area 跟本來的 Repository
git diff tag1 tag2 # tag1, 與 tag2 的 diff
git diff tag1:file1 tag2:file2 # tag1, 與 tag2 的 file1, file2 的 diff
git diff # 比較 目前位置 與 staging area
git diff --cached # 比較 staging area 與 Repository 差異
git diff HEAD # 比較目前位置 與 Repository 差別
git diff new-branch # 比較目前位置 與 branch(new-branch) 的差別
git diff --stat

Git Tag标记管理

git tag v1 ebff # log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容, 設定簡短好記得 Tag: v1
git tag 中文 ebff # tag 也可以下中文, 任何文字都可以
git tag -d 中文 # 把 tag=中文 刪掉

Git log日志操作

git log # 將所有 log 秀出
git log --all # 秀出所有的 log (含 branch)
git log -p # 將所有 log 和修改過得檔案內容列出
git log -p filename # 將此檔案的 commit log 和 修改檔案內容差異部份列出
git log --name-only # 列出此次 log 有哪些檔案被修改
git log --stat --summary # 查每個版本間的更動檔案和行數
git log filename # 這個檔案的所有 log
git log directory # 這個目錄的所有 log
git log -S‘foo()‘ # log 裡面有 foo() 這字串的.
git log --no-merges # 不要秀出 merge 的 log
git log --since="2 weeks ago" # 最後這 2週的 log
git log --pretty=oneline # 秀 log 的方式
git log --pretty=short # 秀 log 的方式
git log --pretty=format:‘%h was %an, %ar, message: %s‘
git log --pretty=format:‘%h : %s‘ --graph # 會有簡單的文字圖形化, 分支等.
git log --pretty=format:‘%h : %s‘ --topo-order --graph # 依照主分支排序
git log --pretty=format:‘%h : %s‘ --date-order --graph # 依照時間排序

Git show信息显示

git show ebff # 查 log 是 commit ebff810c461ad1924fc422fd1d01db23d858773b 的內容
git show v1 # 查 tag:v1 的修改內容
git show v1:test.txt # 查 tag:v1 的 test.txt 檔案修改內容
git show HEAD # 此版本修改的資料
git show HEAD^ # 前一版修改的資料
git show HEAD^^ # 前前一版修改的資料
git show HEAD~4 # 前前前前一版修改的資料

Git reset 還原版本

git reset --hard HEAD # 還原到最前面
git reset --hard HEAD~3
git reset --soft HEAD~3
git reset HEAD filename # 從 staging area 狀態回到 unstaging 或 untracked (檔案內容並不會改變)
Git grep

git grep "te" v1 # 查 v1 是否有 "te" 的字串
git grep "te" # 查現在版本是否有 "te" 的字串
Git stash 暫存

git stash # 丟進暫存區
git stash list # 列出所有暫存區的資料
git stash pop # 取出最新的一筆, 並移除.
git stash apply # 取出最新的一筆 stash 暫存資料. 但是 stash 資料不移除
git stash clear # 把 stash 都清掉

Git merge 合併版本

git merge
git merge master
git merge new-branch
下述轉載自: ihower 的 Git 版本控制系統(2) 開 branch 分支和操作遠端 repo.x
Straight merge 預設的合併模式,會有全部的被合併的 branch commits 記錄加上一個 merge-commit,看線圖會有兩條 Parents 線,並保留所有 commit log。
Squashed commit 壓縮成只有一個 merge-commit,不會有被合併的 log。SVN 的 merge 即是如此。
cherry-pick 只合併指定的 commit
rebase 變更 branch 的分支點:找到要合併的兩個 branch 的共同的祖先,然後先只用要被 merge 的 branch 來 commit 一遍,然後再用目前 branch 再 commit 上去。這方式僅適合還沒分享給別人的 local branch,因為等於砍掉重練 commit log。
指令操作

git merge # 合併另一個 branch,若沒有 conflict 衝突會直接 commit。若需要解決衝突則會再多一個 commit。
git merge --squash # 將另一個 branch 的 commit 合併為一筆,特別適合需要做實驗的 fixes bug 或 new feature,最後只留結果。合併完不會幫你先 commit。
git cherry-pick 321d76f # 只合併特定其中一個 commit。如果要合併多個,可以加上 -n 指令就不會先幫你 commit,這樣可以多 pick幾個要合併的 commit,最後再 git commit 即可。
Git blame

git blame filename # 關於此檔案的所有 commit 紀錄
Git 還原已被刪除的檔案

git ls-files -d # 查看已刪除的檔案
git ls-files -d | xargs git checkout -- # 將已刪除的檔案還原
Git 維護

git gc # 整理前和整理後的差異, 可由: git count-objects 看到.
git fsck --full
Git revert 資料還原

git revert HEAD # 回到前一次 commit 的狀態
git revert HEAD^ # 回到前前一次 commit 的狀態
git reset HEAD filename # 從 staging area 狀態回到 unstaging 或 untracked (檔案內容並不會改變)
git checkout filename # 從 unstaging 狀態回到最初 Repository 的檔案(檔案內容變回修改前)
Git Rollback 還原到上一版

git reset --soft HEAD^
編輯 + git add filename
git commit -m ‘rollback‘
以下與 遠端 Repository 相關

Git remote 維護遠端檔案

git remote
git remote add new-branch http://git.example.com.tw/project.git # 增加遠端 Repository 的 branch(origin -> project)
git remote show # 秀出現在有多少 Repository
git remote rm new-branch # 刪掉
git remote update # 更新所有 Repository branch
git branch -r # 列出所有 Repository branch
抓取 / 切換 Repository 的 branch

git fetch origin
git checkout --track -b reps-branch origin/reps-branch # 抓取 reps-branch, 並將此 branch 建立於 local 的 reps-branch
刪除 Repository 的 branch

git push origin :heads/reps-branch

时间: 2024-11-10 09:59:33

GIT命令集合简明列表的相关文章

git命令集合

git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --global user.email "[email protected]" # 配置邮件 git config --global color.ui true # git status等命令自动着色 git config --global color.status auto git config -

Git常用命令集合速查表

闲着没事从网上搜集了一些 Git的命令 整理整理 1.常用的Git命令 命令 简要说明 特别注释 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git annotate 注释文件行提交信息 等同于 git blame git archive 文件归档打包 git bisect 二分查找 git blame 文件逐行追溯 git branch 分支管理 git cat-file 版本库对象研究工具 g

关于常用的git命令列表

我博客园中所写的git内容几乎都是看的蒋鑫老师的<git权威指南>这本书实在太好了. 常用的Git命令. git add git add interactive git applay git am git annotate git archive git bisect git blame git branch git cat-file git checkout git cherry-pick git citool git clean git clone git commit git confi

ansys 常见命令集合

APDL换行与续行- APDL规定每行72个字符 如果要写表达式A=C1+C2 (C1与C2都为表达式 可以用 B=C1 A=B+C2 将一行拆成两行来做但是如果不是表达式,而是输入一个命令参数过多的话,可以用续行命令RMORE,格式如下: RMORE, R7, R8, R9, R10, R11, R12 这个命令每次也只能输入6个参数,如果多于6个,可以重复使用RMORE就可以输入13-18,19-24等等.另外,于上面续行相应的是换行,一行命令太短可以使用多个命令共一行 $",没有双引号.这

git命令行使用

1. git命令行配置 1)安装完git客户端之后,在任意目录右键鼠标,选择Git GUI Here 2)在打开的窗口中依次选择Help->> Show SSH Key 2)如果弹出的窗口中中间部分没有key,可以点击 Generate Key 按钮,生成key,然后将生成的key拷贝一下,添加到gitlab中即可. 2. 命令使用 1)下载代码 在存放代码的目录中,右键鼠标,选择 Git Bash Here,然后会打开终端窗口 输入: git init   创建git配置目录 输入下面命令,

常用git命令

##GIT ###什么是gut - 是一个源代码管理工具- 在一个项目中,凡是由开发人员编写的都是源代码- 源代码有必要被管理起来吗- 让源代码可以被追溯,主要记录每次变了什么,谁主导这次变化- 人为的维护比较麻烦- GIT是Linux之父当年为了维护管理Linux源代码写的一个工具- GIT之前很多使用的svn vss tfs hs - https://guides.github.com/ ### 安装GIT - git命令行工具- 基于git命令行的一个客户端软件(提供一个界面去管理源代码)

centos7常用命令集合

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] CentOS7 常用命令集合 这两天一直在对CentOS 7.2进行初体验,各种学习命令肿么用,不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样,毕竟这些都不是一家出来的嘛~ 废话不多说,直接上命令和解析! 常用命令 文件与目录操作 命令 解析 cd /home 进入 '/home' 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在目录 cp file1 file2 将

Git 命令速查表

1.常用的Git命令 命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git annotate 同义词,等同于 git blame git archive 文件归档打包 git bisect 二分查找 git blame 文件逐行追溯 git branch 分支管理 git cat-file 版本库对象研究工具 git checkout 检出到工作区.切换或创建分支 git cherr

Git命令速查

总结下Git的常用命令,方便查看一.常用命令1.创建一个新的repository:先在github上创建并写好相关名字,描述.$cd ~/hello-world //到hello-world目录$git init //初始化$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)$git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)$git remote add origin [email protect