Git 使用總結

所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼等等,Git也不例外。而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化。

不幸的是,Microsoft的Word格式是二進制格式,因此,版本控制系統是沒法跟蹤Word文件的改動的。

Git 常用基礎命令合集

創建

git init 創建空的repository

git add fileName 添加修改的文件,把文件修改添加到暫存區

git commit -m '提交的消息' 把暫存區的所有內容提交到當前分支

git diff commitId1 commitId2 查看兩次提交的區別

git diff commitId1:fileName commitId2:fileName 查看兩次提交的文件的區別

分支

git branch 查看分支

git branch branchName 創建分支

git checkout branchName 切換到branchName分支

git checkout -b branchName創建并切換到branchName分支

git checkout -b branch-name origin/branch-name 在本地創建和遠程分支對應的分支

git merge branchName 把branchName分支合并到當前分支

git branch -d branchName 刪除branchName分支,注意不要在branchName分支上做這個操作

git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠程分支的關聯

查看修改

git status 查看當前狀態,有哪些改動

git diff fileName 查看文件修改的內容

git diff HEAD -- fileName 查看文件fileName工作區和版本庫最新版本的區別


撤銷修改

git reset --mixed 把已經添加到暫存區的修改撤回,改為非暫存狀態

git reset --hard commit_id 回滾到commit_id的commit

git checkout -- fileName 撤銷fileName文件在工作區的修改,注意--不要丟掉,回到添加到暫存區后的狀態

git reset HEAD fileName 把暫存區的fileName的修改撤銷掉

查看提交歷史

git log 查看提交歷史

git log --pretty=oneline 查看log,一行一行地顯示

git reflog 查看git操作記錄

創建ssh key

ssh-keygen -t rsa -C "youremail@example.com" //生成一對公鑰id_rsa.pub 私鑰id_rsa

cat ~/.ssh/id_rsa.pub //查看生成的公鑰

遠程倉庫

Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快

git remote add origin remoteUrl 遠程建了一個空倉庫,連接本地到遠程(remoteUrl是遠程倉庫的地址)

git push origin master 把本地分支master 推送到遠程

git clone remoteUrl 克隆一個遠程已存在的倉庫到本地(remoteUrl是遠程倉庫的地址)

標簽管理

git tag tagName 為當前分支打名字為tagName的標簽,默認標簽是打在最新提交的commit上

git tag tagName commit_id 在commit_id上打tag,適用于忘記打tag的情況

git tag -a tagName -m "blablabla..." 打標簽指定標簽信息

git show tagName 查看tag的說明

git tag -d tagName 刪除本地標簽tagName

git push origin tagName 把標簽推送到遠程

git push origin --tags 推送所有標簽到遠程

git push origin :refs/tags/tagName 刪除遠程的標簽tagName

git tag --list 查看所有tag

git checkout -b tagBranch tagName 檢出tag代碼

Git 命令進階

修改提交message

#Commit has not been pushed online

git commit --amend

#Amending the message of the most recently pushed commit

git commit --amend

git push --force

Git rebase

#rebase 遠程分支

git fetch

git rebase origin

處理conflicts

git add .

git rebase --continue

git push origin master

#rebase 本地分支

git rebase branchName

處理conflicts

git add .

git rebase --continue

git push origin master

多行注釋

git commit -m '

1.one

2.two

'

查看本地分支跟蹤的遠程分支

git branch -vv

切換跟蹤的分支

git remote rm origin

git remote add origin git@git.nonobank.com:lejiangkai/MXD.git

git push -u origin feature5.5.4

stash用法

git stash

git stash pop

git list

git stash apply stash@{3}

合并某個分支的單個文件

git checkout targetbranch

git checkout needMergeBranch -- needMergeFileName

如: 分支test上有一個文件A,你在test1分支上, 此時如果想用test分支上的A文件替換test1分支上的文件的話,可以使用

git checkout test1

然后

git checkout test -- A

未完待續......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容