git 怎么备份本地分支_Git常用个人备份笔记
一、新建代碼庫
1、在當(dāng)前目錄下創(chuàng)建一個(gè)Git代碼庫
git init
創(chuàng)建的.git默認(rèn)是隱藏的,使用命令ls -ah顯示出來。
2、新建一個(gè)目錄,并初始化為Git的代碼庫
git init [dir-name]
3、克隆一個(gè)項(xiàng)目包括其提交歷史
git clone [url] [local-dir-name]
二、配置
1、顯示當(dāng)前Git配置
git config --list
2、設(shè)置提交的時(shí)候的用戶信息
git config [--global] user.name "username"
git config [--global] user.email "email address"
三、增加刪除文件
1、添加指定文件到暫存區(qū)
git add [file1] [file2] ···
2、添加指定目錄到暫存區(qū),包括子目錄
git add [dir name]
3、將當(dāng)前目錄下的所有文件到暫存區(qū)(包括當(dāng)前目錄下的已經(jīng)修改的文件夾)
git add .
4、刪除工作區(qū)文件,并且將這次刪除放入到暫存區(qū)
git rm [file1] [file2]
從版本庫中找回rm的文件
git checkout --[file]
5、停止追蹤指定文件,但該文件會(huì)保留到工作區(qū),文件內(nèi)容不變。
git rm --cached [file]
四、代碼提交
1、提交暫存區(qū)到版本庫
git commit -m [message]
2、提交暫存區(qū)的指定文件到倉庫
git commit [file1][file2]··· -m [message]
3、提交工作區(qū)自上次commit之后的變化,直接到倉庫區(qū)
git commit -a
4、提交時(shí)顯示所有的diff信息
git commit -v
5、使用一次新的commit,代替上一次提交;如果代碼沒有變化,就用來改寫上一次的commit提交信息。commit的SHA1會(huì)發(fā)生改變,上一次的提交的內(nèi)容不會(huì)發(fā)生改變。
git commit --amend -m [meesage]
6、重做上一次的commit,并包括指定文件的新變化(此時(shí)不需要講file1和file2添加到暫存區(qū))
git commit --amend [file1] [file2]
五、分支
1、列出所有的分支
git branch
2、列出所有的遠(yuǎn)程分支
git branch -r
3、新建一個(gè)新的分支,但還是停留在當(dāng)前的分支。工作區(qū)會(huì)復(fù)用,即在master上面修改的內(nèi)容還沒有提交,那么如果新建了一個(gè)分支,并切換過去,master的未提交的內(nèi)容也會(huì)跟著帶到新的分支。
git branch [branch-name]
4、新建一個(gè)分支,并切換到該分支
git checkout -b [branch-name]
5、新建一個(gè)分支,并指定指向的commit,此時(shí)如果工作區(qū)不干凈,切換可能會(huì)出現(xiàn)失敗,需要使用git stash 將當(dāng)前工作區(qū)的修改給隱藏掉。
git branch [branch-name] [commit id]
6、切換到上一個(gè)分支
git branch -
7、在當(dāng)前的分支和指定的遠(yuǎn)程分支之間建立追蹤關(guān)系
git branch --set-upstream [branch] [remote-branch]
8、合并指定分支到當(dāng)前分支
git merge [branch]
9、刪除分支
git branch -d [branch-name]
10、刪除一個(gè)沒有被合并過的分支需要使用-D參數(shù):
git branch -D [branch-name]
11、刪除遠(yuǎn)程分支
git push [origin-name] --d [branch-name]
12、新建一個(gè)分支,指向某個(gè)tag
git checkout -b [branch] [tag]
13、顯示分支圖
git log --graph
14、修改分支名稱
git banch -m [old-name] [new-name]
15、合并多次commit
git rebase -i [commit]
上面的命令表示的是head分支到commit上一個(gè)commit的合并,注意不包括該commit。
在彈出的Vim編輯頁面輸入命令:
Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
# l, label = label current HEAD with a name
# t, reset = reset HEAD to a label
# m, merge [-C | -c ] [# ]
然后wq保存,再彈出一個(gè)Vim編輯框,修改commit信息。
16、恢復(fù)刪除的分支
git reflog 查看之前的這個(gè)已經(jīng)刪除的分支的提交歷史
git branch
六、標(biāo)簽
1、列出所有標(biāo)簽
git tag
2、新建一個(gè)指向當(dāng)前commit的tag
git tag [tag-name]
3、新建一個(gè)tag在指定的commit
git tag [tag-nam] [commit]
4、刪除本地tag
git tag -d [tag-name]
5、刪除遠(yuǎn)程tag
git push [origin-name]:refs/tags/[tag-name]
6、查看tag信息
git show tag
7、提交本地所有tag
git push [origin-name] --tags
8、提交指定tag
git push [origin-name] [tag]
七、查看信息
1、查看有變更的文件
git status
2、顯示當(dāng)前分支的版本歷史
git log
3、顯示commit歷史,以及每次commit發(fā)生變更的文件
git log --stat
4、顯示代碼差異
git diff
暫存區(qū)沒有文件:比較的是當(dāng)前工作區(qū)和上一次的commit的差別。
暫存區(qū)有文件:比較的是當(dāng)前工作區(qū)和暫存區(qū)的差別。
5、顯示暫存區(qū)和上一次commit的差異
git diff --cached [file]
6、顯示工作區(qū)和當(dāng)前分支的最新commit的差異
git diff head
7、顯示兩次提交之間的差異(commit1 和 commit的順序需要注意,不一樣會(huì)導(dǎo)致新增和刪除錯(cuò)位)
git diff [commit1] [commit2]
8、顯示某次提交的元數(shù)據(jù)的和內(nèi)容變化
git show [commit]
八、遠(yuǎn)程同步
配置遠(yuǎn)程倉庫:
git remote add test http://xxxx@git.XXXX.com/scm/wbqa/xxxx.git
test為遠(yuǎn)程倉庫的別名,后面的htpp為遠(yuǎn)程倉庫地址。
刪除遠(yuǎn)程倉庫:
git remote rm test
test為別名
1、下載遠(yuǎn)程倉庫的所有變動(dòng)
git fetch [remote]
2、顯示所有的遠(yuǎn)程倉庫
git remote -v
和git remote的差別
$ git remote
origin
$ git remote -v
origin https://github.com/DimpleFeng/GitTest.git (fetch)
origin https://github.com/DimpleFeng/GitTest.git (push)
3、取回遠(yuǎn)程倉庫的變化,并和本地分支合并
git pull [remote] [branch]
4、上傳本地指定分支到遠(yuǎn)程倉庫
git push [remote] [branch]
5、強(qiáng)行推送當(dāng)前分支到遠(yuǎn)程倉庫即使有沖突
git push [remote] --force
6、git remote 通常用于查看別人的進(jìn)行,因?yàn)槿』氐拇a對(duì)本地沒有影響。
git remote add 添加遠(yuǎn)程主機(jī)
git remote rm 刪除遠(yuǎn)程主機(jī)
git remote rename
7、git pull 取回遠(yuǎn)程主機(jī)某個(gè)分支的更新,再和本地的分支進(jìn)行合并。
git pull :
取回origin主機(jī)的next分支,與本地的master合并
git pulll origin next:master
如果遠(yuǎn)程分支是和當(dāng)前的分支進(jìn)行合并,則冒號(hào)后面可以省略。
在某些場(chǎng)合,Git會(huì)自動(dòng)在遠(yuǎn)程分支和本地分支之間創(chuàng)建一個(gè)追蹤關(guān)系,如果當(dāng)前分支和遠(yuǎn)程分支存在著追蹤關(guān)系,就可以省略遠(yuǎn)程分支名稱。
如果當(dāng)前分支只有一個(gè)追蹤分支,遠(yuǎn)程主機(jī)名也可以省略。
8、git push 將本地分支的更新,推送到遠(yuǎn)程主機(jī)
git push :
如果省略遠(yuǎn)程分支名,表示將本地分支推送給與之存在追蹤關(guān)系的遠(yuǎn)程分支,如果該分支不存在會(huì)被新建。
如果省略本地分支名,則表示刪除指定的遠(yuǎn)程分支:git push origin :master
如果當(dāng)前分支和遠(yuǎn)程分支存在追蹤關(guān)系,則本地分支和遠(yuǎn)程分支都可以省略。
如果只存在一個(gè)追蹤分支,那么主機(jī)名可以省略.
如果遠(yuǎn)程主機(jī)的版本比本地的新,那么推送到Git的時(shí)候會(huì)報(bào)錯(cuò),這個(gè)時(shí)候可以采用git push –force origin強(qiáng)制覆蓋遠(yuǎn)程主機(jī)的版本。
九、撤銷
1、恢復(fù)暫存區(qū)的指定文件到工作區(qū)。會(huì)丟失提交到暫存區(qū)后對(duì)該文件的所有操作。
git checkout [file]
2、恢復(fù)某次commit的指定文件到暫存區(qū)和工作區(qū)(git處于等待commit狀態(tài),同時(shí)會(huì)丟失在這之前對(duì)工作區(qū)的修改的內(nèi)容)
git checkout [commit] [file]
3、恢復(fù)暫存區(qū)所有文件到工作區(qū)。會(huì)丟失在提交到暫存區(qū)之后的對(duì)文件的所有修改。
git checkout .
4、重置暫存區(qū)和工作區(qū),與上一次commit一致
git reset --hard
5、重置當(dāng)前分支的head為指定的commit,同時(shí)重置暫存區(qū)和工作區(qū),與指定commit一致。
git reset --hard [commit]
git reset [file] 將file從暫存區(qū)回退到工作區(qū)(修改內(nèi)容不會(huì)丟失)
6、將未保存的變化隱藏
git stash
彈出
git stash pop
7、查看歷史命令
git reflog
總結(jié)
以上是生活随笔為你收集整理的git 怎么备份本地分支_Git常用个人备份笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫如何连接数据库_手把手教
- 下一篇: 基于sklearn的朴素贝叶斯_朴素贝叶