Git 命令集 实践整理
文章命令摘抄于《GitHub入門與實踐》一書、網上搜集和實踐整理。
生成ssh key
$ ssh-keygen -t rsa -C "your_email@example.com"查看ssh目錄的文件
$ ls -al ~/.ssh設置git昵稱和郵箱
$ git config --global user.name "昵稱" $ git config --global user.email "郵箱"命令
基本操作
初始化倉庫
git init查看倉庫的狀態
git status向暫存區中添加文件
git add 暫存區是提交之前的一個臨時區域保存倉庫的歷史記錄
git commit記述一行提交信息
git commit -m "here enter description"記述詳細提交信息
git commit執行后編輯器會啟動
提交格式:
- 第一行:一行文字簡述提交的更改內容
- 第二行:留空
- 第三行:記述更改的原因和詳細的內容
中止提交
編輯狀態下想終止提交
-
還沒有輸入過內容
- 輸入:q退出
-
已經有內容了,但不想保存
- 輸入:q!退出
查看提交日志
git log顯示簡短的提交日志
git log --pretty=short顯示一行的提交日志
git log --pretty=oneline只顯示指定目錄、文件的日志
git log README.md顯示文件的改動
對比文件的上一個提交,清晰顯示改動的地方
git log -p readme.md查看工作樹和暫存區的區別
git diff查看工作樹和最新提交的差別
在執行git commit命令之前先執行git diff HEAD,可以查看本次提交和上次提交之間的差別
git diff HEAD分支的操作
顯示分支列表
分支前面有*號這表示我們當前所在的分支
git branch創建分支
創建branch-name的分支,并切換到該分支下
git checkout -b branch-name另外一種創建寫法
git branch branch-b # 創建branch-b分支 git checkout branch-b # 切換到branch-b分支切換分支
git checkout branch-b重命名分支
git branch -m old_name new_name切換回上一個分支
git checkout -合并分支
默認是:--fffase forward 快速合并,不會生成新的提交不使用快速合并
- step 1 先切換回要合并到的主分支
- step 2 然后合并 branch-b 分支
--no-ff 的效果就像下面這樣,并會生成一個新的提交。
圖解4種git合并分支方法
壓縮合并
將待合并的分支內容壓縮成一個新的提交
$ git merge --squash branch-b刪除分支
刪除分支,刪除前主分支的提交中有合并分支的提交,會丟失分支信息,內容不會丟失。
以圖表方式查看分支提交日志
$ git log --graph回溯(時光機、后悔藥)
$ git reset --hard d6f34b7c6d72fdc4e3d01fe6fb2a430278b913ff $ git reset --hard d6f34b # 或者更簡短一些,唯一即可回退到上一個版本
$ git reset --hard HEAD^撤銷上一個提交(commit)
這個操作會撤銷到上一個的本地提交,但是會保留其提交的修改內容,作用就是以便修正內容之后重新提交。
$ git reset HEAD~查看倉庫操作日志
在倉庫執行過的操作日志都會被記錄下來,包括乘坐時光機的操作
$ git reflog放棄修改
放棄本地修改
未使用git add命令的文件或目錄,可以通過下面的命令來進行
$ git checkout -- filename // filename換成文件名或者文件,放棄單個 $ git checkout . // 放棄本地所有的修改已使用git add,但未使用git commit命令的文件或目錄
下面命令會回到add之前,文件會保留并不會刪除
還有一種情況,發現上面的操作都無法完全清除本地的改動,可以使用下面的命令。
原因是,這些清不掉的文件都是新添加的文件,上面的操作只對改動原文件有效。
已使用git add&git commit的文件,撤銷此次commit
git reset --hard commit_id // 直接還原到指定的commit記錄,所以commit會被刪除放棄添加
撤銷add操作
仍會保留改動的內容
$ git reset版本tag
$ git tag -a v0.1 -m "version 0.1 released" 1094adb查看tag版本
$ git show v1.0同步tag到遠程倉庫
$ git push origin --tags刪除tag版本
$ git tag -d v1.0拉取遠程分支到本地
$ git fetch origin branchname:branchname # 拉取branchname到本地branchname分支強制忽略文件
如果已存在版本庫里面的文件,是無法加入到.gitignore忽略列表里面的。
可以使用,下面的命令進行強制忽略
解除忽略命令
git update-index --no-assume-unchanged <files>總結
以上是生活随笔為你收集整理的Git 命令集 实践整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Eclipse中使用Git之一】把远程
- 下一篇: 浅谈Handler