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 bash
,mkdir 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