git
一 git 配置個人信息
1、默認配置個人信息有三層
最高層系統層默認配置保存在/etc/gitconfig
文件,使用 git
config
時用 --system
選項,讀寫的就是這個文件。
下一層用戶層默認配置保存在~/.gitconfig
文件,使用 git
config
時用 --global
選項,讀寫的就是這個文件。
最細層管理項目默認配置文件 .git/config
文件,使用 git
config
時不加選項,讀寫的就是這個文件。
默認要配的選項有:
2 查看配置選項
git config --list
也可以直接查閱某個環境變量的設定,只要把特定的名字跟在後面即可,像這樣:
$ git config user.name
Scott Chacon
能不能分類洗一份數據訓練看效果????
二、遠程分支
1 新建遠程分支
git
push origin serverfix
是下列命令的縮寫:
Git 自動把 serverfix
分支名擴展爲 refs/heads/serverfix:refs/heads/serverfix
git push origin serverfix:serverfix 上傳我本地的
serverfix 分支到遠程倉庫中去,仍舊稱它爲 serverfix 分支
所以 遠程分支名不同時,可以如下:
git
push origin serverfix:awesomebranch
合併遠程分支:
git merge origin/serverfix
在遠程分支的基礎上分化出一個新的分支來:
git
checkout -b serverfix origin/serverfix
跟蹤分支:從遠程分支 checkout
出來的本地分支,稱爲 跟蹤分支 (tracking
branch)。跟蹤分支是一種和某個遠程分支有直接聯繫的本地分支。在跟蹤分支裏輸入 git push
,Git
會自行推斷應該向哪個服務器的哪個分支推送數據。同樣,在這些分支裏運行 git pull
會獲取所有遠程索引,並把它們的數據都合併到本地分支中來。
刪除遠程分支
git
push origin :serverfix
記住我們不久前見過的 git
push [遠程名] [本地分支]:[遠程分支]
語法,如果省略 [本地分支]
,那就等於是在說“在這裏提取空白然後把它變成[遠程分支]
”。
(問題:git push origin master:another 結果遠程的master
another分支都commit了,所以以後這樣改有風險,儘量還是保持遠程本地分支同名吧)
引子:git中存在upstream和downstream,簡言之,當我們把倉庫A中某分支x的代碼push到倉庫B分支y,此時倉庫B的這個分支y就叫做A中x分支的upstream,而x則被稱作y的downstream,這是一個相對關係,每一個本地分支都相對地可以有一個遠程的upstream分支(注意這個upstream分支可以不同名,但通常我們都會使用同名分支作爲upstream)。
當未指定默認遠程push/pull分支時(git config中的push.default未配置):
需要git
push origin develop
git pull origin develop
纔可以上傳或者下拉代碼
否則會push或者pull git/config中配置的默認分支
指定默認分支的方法:
方法1 修改config文件
[branch
"develop"]
remote
= origin
merge
= refs/heads/develop // [1]爲什麼不是refs/remotes/develop?
方法2 通過command-line直接設置
git
config branch.develop.merge refs/heads/develop
這樣當我們在develop分支git
pull時,如果沒有指定upstream分支,git將根據我們的config文件去merge
origin/develop
;如果指定了upstream分支,則會忽略config中的merge默認配置。
方法3 git
push --set-upstream origin develop
關聯本地develop分支的upstream分支
方法4 初次push時 加入-u參數
git
push -u origin develop
,這個操作在push的同時會指定當前分支的upstream。
******************************************************************************************************************************
git 和遠程倉庫
1、在一個project目錄下,git init 把該目錄變爲一個git倉庫
注意:直接新建一個branch是會報錯的
需要add,commit 一次纔會創建master分支,之後才能新建分支
2、git 查語句—很好 不用再google
githelp
<
verb>
|| git<
verb>
--help|| man
git-<
verb>
3、git remote常用
看當前有的遠程倉庫 git remote
添加新git倉庫 git remote add 遠程倉庫簡名 ssh://
[email protected]/~liyubing/liyubing.git 如果只有一個遠程倉庫 那就把名字起爲origin
給目前遠程倉庫重命名 git remote rename < old> <new>
刪除某個遠程倉庫 git remote remove name
4、創建遠程倉庫
好像只能在github 或者其他類似的地方 手動 create repository
5、intellij,maven下常用的gitignore文件
.settings
.metadata
.classpath
.project
*.iml
*.idea/
*~
target
RemoteSystemsTempFiles
.DS_Store
dataservice/.DS_Store
./idea/*
modules.iml
._.DS_Store
6、git 看本地分支向遠程分支的提交記錄
#
顯示當前分支的最近幾次提交$ git reflog
7、gittag
tag用來給當前代碼情況做個標記
git tag 看當前所有tag號
git tag -a 版本號 -m ‘備註’ 打tag方法
git push origin 版本號 向遠程倉庫推送版本號的方法
看對應tag代碼
git checkout tagname 注意 這樣之後當前分支會回到這個快照。。。
所以可以給tag新開一個分支
git checkout -b newbranch tagname
8、git 獲取遠程分支
當clone之後,git branch -r 可以看到遠程的分支
在本地(此時直接git branch 並看不到想切的分支)直接checkout 該分支即可
(如果有一個clone之後新分支 可以git origin fetch 分支 然後checkout 該分支?)