git 怎么备份本地分支_Git常用个人备份笔记
一、新建代碼庫
1、在當前目錄下創建一個Git代碼庫
git init
創建的.git默認是隱藏的,使用命令ls -ah顯示出來。
2、新建一個目錄,并初始化為Git的代碼庫
git init [dir-name]
3、克隆一個項目包括其提交歷史
git clone [url] [local-dir-name]
二、配置
1、顯示當前Git配置
git config --list
2、設置提交的時候的用戶信息
git config [--global] user.name "username"
git config [--global] user.email "email address"
三、增加刪除文件
1、添加指定文件到暫存區
git add [file1] [file2] ···
2、添加指定目錄到暫存區,包括子目錄
git add [dir name]
3、將當前目錄下的所有文件到暫存區(包括當前目錄下的已經修改的文件夾)
git add .
4、刪除工作區文件,并且將這次刪除放入到暫存區
git rm [file1] [file2]
從版本庫中找回rm的文件
git checkout --[file]
5、停止追蹤指定文件,但該文件會保留到工作區,文件內容不變。
git rm --cached [file]
四、代碼提交
1、提交暫存區到版本庫
git commit -m [message]
2、提交暫存區的指定文件到倉庫
git commit [file1][file2]··· -m [message]
3、提交工作區自上次commit之后的變化,直接到倉庫區
git commit -a
4、提交時顯示所有的diff信息
git commit -v
5、使用一次新的commit,代替上一次提交;如果代碼沒有變化,就用來改寫上一次的commit提交信息。commit的SHA1會發生改變,上一次的提交的內容不會發生改變。
git commit --amend -m [meesage]
6、重做上一次的commit,并包括指定文件的新變化(此時不需要講file1和file2添加到暫存區)
git commit --amend [file1] [file2]
五、分支
1、列出所有的分支
git branch
2、列出所有的遠程分支
git branch -r
3、新建一個新的分支,但還是停留在當前的分支。工作區會復用,即在master上面修改的內容還沒有提交,那么如果新建了一個分支,并切換過去,master的未提交的內容也會跟著帶到新的分支。
git branch [branch-name]
4、新建一個分支,并切換到該分支
git checkout -b [branch-name]
5、新建一個分支,并指定指向的commit,此時如果工作區不干凈,切換可能會出現失敗,需要使用git stash 將當前工作區的修改給隱藏掉。
git branch [branch-name] [commit id]
6、切換到上一個分支
git branch -
7、在當前的分支和指定的遠程分支之間建立追蹤關系
git branch --set-upstream [branch] [remote-branch]
8、合并指定分支到當前分支
git merge [branch]
9、刪除分支
git branch -d [branch-name]
10、刪除一個沒有被合并過的分支需要使用-D參數:
git branch -D [branch-name]
11、刪除遠程分支
git push [origin-name] --d [branch-name]
12、新建一個分支,指向某個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上一個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保存,再彈出一個Vim編輯框,修改commit信息。
16、恢復刪除的分支
git reflog 查看之前的這個已經刪除的分支的提交歷史
git branch
六、標簽
1、列出所有標簽
git tag
2、新建一個指向當前commit的tag
git tag [tag-name]
3、新建一個tag在指定的commit
git tag [tag-nam] [commit]
4、刪除本地tag
git tag -d [tag-name]
5、刪除遠程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、顯示當前分支的版本歷史
git log
3、顯示commit歷史,以及每次commit發生變更的文件
git log --stat
4、顯示代碼差異
git diff
暫存區沒有文件:比較的是當前工作區和上一次的commit的差別。
暫存區有文件:比較的是當前工作區和暫存區的差別。
5、顯示暫存區和上一次commit的差異
git diff --cached [file]
6、顯示工作區和當前分支的最新commit的差異
git diff head
7、顯示兩次提交之間的差異(commit1 和 commit的順序需要注意,不一樣會導致新增和刪除錯位)
git diff [commit1] [commit2]
8、顯示某次提交的元數據的和內容變化
git show [commit]
八、遠程同步
配置遠程倉庫:
git remote add test http://xxxx@git.XXXX.com/scm/wbqa/xxxx.git
test為遠程倉庫的別名,后面的htpp為遠程倉庫地址。
刪除遠程倉庫:
git remote rm test
test為別名
1、下載遠程倉庫的所有變動
git fetch [remote]
2、顯示所有的遠程倉庫
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、取回遠程倉庫的變化,并和本地分支合并
git pull [remote] [branch]
4、上傳本地指定分支到遠程倉庫
git push [remote] [branch]
5、強行推送當前分支到遠程倉庫即使有沖突
git push [remote] --force
6、git remote 通常用于查看別人的進行,因為取回的代碼對本地沒有影響。
git remote add 添加遠程主機
git remote rm 刪除遠程主機
git remote rename
7、git pull 取回遠程主機某個分支的更新,再和本地的分支進行合并。
git pull :
取回origin主機的next分支,與本地的master合并
git pulll origin next:master
如果遠程分支是和當前的分支進行合并,則冒號后面可以省略。
在某些場合,Git會自動在遠程分支和本地分支之間創建一個追蹤關系,如果當前分支和遠程分支存在著追蹤關系,就可以省略遠程分支名稱。
如果當前分支只有一個追蹤分支,遠程主機名也可以省略。
8、git push 將本地分支的更新,推送到遠程主機
git push :
如果省略遠程分支名,表示將本地分支推送給與之存在追蹤關系的遠程分支,如果該分支不存在會被新建。
如果省略本地分支名,則表示刪除指定的遠程分支:git push origin :master
如果當前分支和遠程分支存在追蹤關系,則本地分支和遠程分支都可以省略。
如果只存在一個追蹤分支,那么主機名可以省略.
如果遠程主機的版本比本地的新,那么推送到Git的時候會報錯,這個時候可以采用git push –force origin強制覆蓋遠程主機的版本。
九、撤銷
1、恢復暫存區的指定文件到工作區。會丟失提交到暫存區后對該文件的所有操作。
git checkout [file]
2、恢復某次commit的指定文件到暫存區和工作區(git處于等待commit狀態,同時會丟失在這之前對工作區的修改的內容)
git checkout [commit] [file]
3、恢復暫存區所有文件到工作區。會丟失在提交到暫存區之后的對文件的所有修改。
git checkout .
4、重置暫存區和工作區,與上一次commit一致
git reset --hard
5、重置當前分支的head為指定的commit,同時重置暫存區和工作區,與指定commit一致。
git reset --hard [commit]
git reset [file] 將file從暫存區回退到工作區(修改內容不會丟失)
6、將未保存的變化隱藏
git stash
彈出
git stash pop
7、查看歷史命令
git reflog
總結
以上是生活随笔為你收集整理的git 怎么备份本地分支_Git常用个人备份笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫如何连接数据库_手把手教
- 下一篇: python 多进程 循环_python