要裝git-doc,另外推薦git的圖形客戶端gitg,比gitk好看多了,用apt-get install就可
HEAD是當前工作版本的指針
–global保存的是當前用戶的配置,配置文件保存在~/.gitconfig
–system是系統中所有用戶,配置文件一般在/etc/gitconfig
什麼都不加就是當前目錄下項目的配置文件,在項目的.git文件夾中
git config –list 可以查看所有配置信息,有重名的因為有不同的配置文件,實際會采用最後一個
基本設置
git config –global user.name yisen
git config –global user.name
[email protected]
git config –global core.editor vim
給git著色
git config –global color.ui true 這樣會好看一些
自動完成腳本
git默認要輸入全命令,而且還不能像svn那樣st,ci,co,有點不方便
其實在git的源代碼文件夾中,contrib/completion 目錄下的 git-completion.bash腳本可以實現自動完成
把它復制到~/.git-completion.bash,然後source之,並且把命令加到啟動腳本中echo “source ~/.git-completion.bash >> ~/.bashrc”
現在我們就可以用我們習慣的<tab><tab>來自動補全命令了
Git 命令別名
$ git config –global alias.co checkout
$ git config –global alias.br branch
$ git config –global alias.logg “log –pretty=format:’%h – %an -%ad -%s’”
git log -p 查看每個版本的差異
git log a..b 查看a版本到b版本之間的log
git reflog 可以查看每個改動
git reset HEAD~1 撤銷最近的一次改動
恢復數據 用reflog查看已經沒了的提交的SHA值,然後直接git branch recover-branch ab1afef(SHA值前幾位)
git checkout -b newbranch = git branch newbranch + git checkout newbranch
git checkout -b newbranch develop = git checkout develop + git checkout -b newbranch
永遠不要rebase那些已經推送到公共倉庫的更新。
如果你遵循這條金科玉律,就不會出差錯。否則,人民群眾會仇恨你,你的朋友和家人也會嘲笑你,唾棄你。
如果把rebase當成一種在推送之前清理提交歷史的手段,而且僅僅rebase那些永遠不會公開的 commit,那就不會有任何問題。如果rebase那些已經公開的 commit,而與此同時其他人已經用這些 commit 進行了後續的開發工作,那你有得麻煩了。
忽略添加某些文件
習慣git add .來增加所有更改,如果有不想被默認添加進倉庫的,可以在項目目錄下新建一個.gitignore文件,把文件名輸進去,空行分隔,可以用*號。
局域網內共享倉庫
無SSH的:
本機上用git clone –bare xxx xxx.git 克隆一個純倉庫
xxx.git放到服務器上一個項目組都能訪問到的共享目錄下,比如NFS,假設/mnt/git/xxx.git
對方先mount到自己的/mnt/git,然後 git clone /mnt/git/xxx.git
添加遠程主機: git remote add origin file://192.168.x.x/opt/xxx.git
獲取更新: git fetch origin 這時得到一個origin/master分支的指針,不能修改,
可以合並到自己的主干 git co master, git merge origin/master,或者新建一個分支來工作,git checkout -b new_br origin/master
獲取更新並合並到當前分支的命令可以合並為: git pull origin master (master:master)