Git常見操作收藏

1. 關於怎麼創建一個主分支以外的分支,並且提交的代碼也放在一個遠程相同名字的分支?

//在本地創建一個新的分支
git branch dikang_branch 
git branch -a //查看本地和遠程的所有分支,remote分支會用紅色標記
git push origin dikang_branch //將本地分支推送到遠程,如果沒有對應的遠程分支就新建
git push --set-upstream origin dikang_branch 
//本地新建一個分支後,必須要做遠程分支關聯。如果沒有關聯,git會在下面的操作中提示你顯示的添加關聯。關聯目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令行指定遠程的分支
接下來你的任何操作git push都會push到dikang_branch

2. 刪除一個遠程分支使用
git push origin -- delete <branchName>或者git push origin :<branchName>(推送一個空分支到遠程分支,其實就相當於刪除遠程分支:)

3. 查看origin遠程分支的詳細信息
git remote show origin

4. 查看遠程分支以及分支下最新的提交
git branch -av

5. 查看端口並且解除佔用

netstat -tunpl 
kill -9 (pid)   

6. 怎麼在本地也克隆一個遠程的git項目:
+ 打開git bashmkdir xxx && cd xxx

git init
git config --global user.name 'Andyliwr'
git config --gloabl user.email '[email protected]'
git remote add -f -t master -m master origin https://github.com/Andyliwr/blog.git
git merge origin

7. 克隆一個遠程項目的時候如果發生權限錯誤怎辦?


解決方案
+ 首先看本地有沒有ssh key(一般在/c/Users/Andyliwr/.ssh/id_rsa.pub中)
+ 如果沒有的話使用 ssh-keygen -t rsa -C "[email protected]"創建一個
+ 然後用編輯器打開/c/Users/Andyliwr/.ssh/id_rsa.pub,複製裏面的內容到git stash或者github網站把ssh key添加進去。

8. 怎麼利用git stash快速保存已經修改的內容,在處理完其他的事情再還原回來。

# ... hack hack hack ...
$ git stash
$ edit emergency fix
$ git commit -a -m "Fix in a hurry"
$ git stash pop //或者git stash list查看所有stash,然後git stash apply <stash name>指定使用哪個stash
# ... continue hacking ...

9. 如果你你正在修改代碼,但是現在有個很重要的更新你需要pull,爲了避免衝突你可以使用:

git stash save 'save-message'
$ git pull
$ git stash pop

10.今天git又前進了一大步:
+ 圖形化查看提交記錄
git log --graph --oneline --decorate
執行git config --global alias.lol "log --pretty=oneline --abbrev-commit --graph --decorate能讓你以後只需要執行git lol就可以樹形查看提交記錄
+ 已經add但是未提交,怎麼查看修改的代碼
git diff --cached
+ 比git diff更爲強大的git show
git show可以查看某次的代碼修改及時已經提交了。git show HEAD^查看最近一次修改的代碼,git show HEAD^^查看最近兩次修改的代碼

11. 在github.com上 建立了一個小項目,可是在每次push 的時候,都要輸入用戶名和密碼,很是麻煩
原因是使用了https方式 push在terminer裏邊 輸入 git remote -v,可以看到形如一下的返回結果

origin https://github.com/yuquan0821/demo.git (fetch)
origin https://github.com/yuquan0821/demo.git (push)

下面把它換成ssh方式的。

git remote rm origin
git remote add origin git@github.com:yuquan0821/demo.git
git push origin 

12. 怎麼回退本地和遠程的提交

git reset --hard commit_id(可用 git log –oneline 查看) ###本地代碼回退
git reset --hard HEAD^ //回退一次提交
git push origin HEAD --force ###遠程提交回退

14. git重命名分支
git branch -m devel develop

15.Refspec matches more than one
當你push分支的時候出現這樣的錯誤:

$ git push origin master
error: src refspec master matches more than one.
error: failed to push some refs to 'ssh://user@host/srv/git/repo

這是因爲當前git項目存在和你當前分支名一樣的tag版本,如果不必要刪掉就好了。

$ git tag
master
tag1
tag2
tag3
tag4
tag -d master
發佈了59 篇原創文章 · 獲贊 80 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章