溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

git - 常用操作匯總

發布時間:2020-06-26 12:00:31 來源:網絡 閱讀:632 作者:沈豬豬 欄目:開發技術

遠程倉庫相關命令

檢出倉庫:$ git@192.168.1.102:yaoxiabing/saltstack.git
查看遠程倉庫:$ git remote -v
添加遠程倉庫:$ git remote add [name] [url]
刪除遠程倉庫:$ git remote rm [name]
修改遠程倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠程倉庫:$ git pull [remoteName] [localBranchName]
推送遠程倉庫:$ git push [remoteName] [localBranchName]

分支(branch)操作相關命令

查看本地分支:$ git branch
查看遠程分支:$ git branch -r
創建本地分支:$ git branch [name] ----注意新分支創建后不會自動切換為當前分支
切換分支:$ git checkout [name]
創建新分支并立即切換到新分支:$ git checkout -b [name]
刪除分支:$ git branch -d [name] ---- -d選項只能刪除已經參與了合并的分支,對于未有合并的分支是無法刪除的。如果想強制刪除一個分支,可以使用-D選項
合并分支:$ git merge [name] ----將名稱為[name]的分支與當前分支合并
創建遠程分支:$ git push origin [name]
刪除遠程分支:$ git push origin :heads/[name] 或 $ git push origin :[name]  如:[root@centos7 saltstack]# git push origin --delete 123  # 刪除遠程分支

發現有人總結得不錯,就直接引用了。http://blog.chinaunix.net/uid-9398085-id-3164754.html


標簽(tag)操作相關命令

創建遠程標簽:$ git push origin 標簽名
刪除遠程標簽:$ git push origin :refs/tags/標簽名 
列出標簽:$ git tag -l
刪除本地標簽:$ git tag -d 標簽名


example1 : 把本地的某個分支origin2提交到遠程倉庫,并作為遠程倉庫的master分支,或者作為名叫123的分支

[root@centos7 saltstack]# git branch origin2   # 創建一個本地分支origin2
[root@centos7 saltstack]# git push origin origin2:123   # 提交本地origin2分支作為遠程的123分支
[root@centos7 saltstack]# git push origin origin2:master   # 提交本地origin2分支作為遠程的master分支

 

example2:  刪除不對應遠程分支的本地分支                 

[root@centos7 saltstack]# git fetch -p # 在fetch之后刪除掉沒有與遠程分支對應的本地分支 -p:是prune 修剪的意思


example3:  手誤rm刪除本地倉庫的某個文件,使用git checkout -- <file>可以恢復

[root@centos7 saltstack]# ll
total 24
drwxr-xr-x 4 root root    37 Oct 30 23:27 config
-rw-r--r-- 1 root root   555 Oct 30 23:27 config.ini
-rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py
-rw-r--r-- 1 root root    38 Oct 30 23:31 README
drwxr-xr-x 4 root root    37 Oct 30 23:27 template
[root@centos7 saltstack]# rm README -f
[root@centos7 saltstack]# ll
total 20
drwxr-xr-x 4 root root    37 Oct 30 23:27 config
-rw-r--r-- 1 root root   555 Oct 30 23:27 config.ini
-rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py
drwxr-xr-x 4 root root    37 Oct 30 23:27 template
[root@centos7 saltstack]# git checkout -- README
[root@centos7 saltstack]# ll
total 24
drwxr-xr-x 4 root root    37 Oct 30 23:27 config
-rw-r--r-- 1 root root   555 Oct 30 23:27 config.ini
-rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py
-rw-r--r-- 1 root root    38 Oct 30 23:35 README
drwxr-xr-x 4 root root    37 Oct 30 23:27 template


example4:  使用rm(沒使用git rm)刪除某個文件,git commit -a強制提交

[root@centos7 saltstack]# ls
config  config.ini  fabfile.py  README  template
[root@centos7 saltstack]# 
[root@centos7 saltstack]# 
[root@centos7 saltstack]# rm README -f
[root@centos7 saltstack]# git commit -a -m "for test"
[root@centos7 saltstack]# git push
[root@centos7 saltstack]# ll
total 20
drwxr-xr-x 4 root root    37 Oct 30 23:27 config
-rw-r--r-- 1 root root   555 Oct 30 23:27 config.ini
-rw-r--r-- 1 root root 13157 Oct 30 23:27 fabfile.py
drwxr-xr-x 4 root root    37 Oct 30 23:27 template


example5:使用git rm -rf強制刪除某個目錄后,使用git reset回退。

git reset [--hard|soft|mixed|merge|keep] [commit或HEAD],根據--soft --mixed --hard,會對working directory、index、HEAD進行重置。
A). --hard:除了“Untracked files”,其他變更都被重置。即:重設index和working directory,自從commit以來在working directory和index中的任何改變都被丟棄,并把HEAD指向commit。 
B). --soft:這個模式的效果是,執行完畢后,自從commit以來的所有改變都會顯示在git status的"Changes to be committed"中,當然,還有“Untracked files”。即:恢復commit以來的index和working directory內容。即:not commited 
C). --mixed:這個模式是默認模式。這個模式的效果是,自從commit以來的修改都會被保留,但會被標記成"Changes not staged for commit"。即:僅重置index,文件修改被轉移到working directory中。即:not added
(來自某大神的博客:http://lingxiankong.github.io/blog/2014/07/18/git-notes/)


example6:  如何判斷分支tracking了沒?

git的tracking就是把來源和目標綁定在一起,tracking只能一對一。
git push -u origin master 這時所在的分支就已經 tracking to origin/master 了,-u 就是這個用處。

查看.git/config配置文件也可以看出來
[branch "master"]
remote = origin
merge = refs/heads/master      # 有這個表示是有tracking的,tracking實質其實就是pull 的 merge 動作來源

 

查看提交日志相關命令

[root@centos7 saltstack]# git blame test.txt  # 查看test.txt這個文件中內容每一行提交的作者,最后的提交時間
[root@centos7 saltstack]# git log  # 查看倉庫提交記錄,有幾個常用選項
--oneline:一行顯示每個commit的提交哈希值和提交信息
--graph:在顯示內容左邊繪制一張分支拓撲圖
--all:顯示所有分支
--name-status:簡潔的日志信息,以及修改了哪些文件
-5:顯示5個commit記錄


git高級命令使用見:http://www.infoq.com/cn/news/2016/01/12-git-advanced-commands

   

參考鏈接:http://zengrong.net/post/1746.htm



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女