最近在学Git教程这个教程,很简单,易懂,带视频,大赞。
# 基本操作
git add *
git rm *
git mv *
git commit -m ‘updated.’
git log
git log --pretty=oneline
#查看合并情况
git log --graph --pretty=oneline --abbrev-commit
# 恢复撤销
git reset --hard HEAD^ git reset --hard 3628164(hash)
git checkout -- readme.txt
# 提交到远程
git remote add origin git@github.com:vi5i0n/learninggit.git
git push -u origin master
要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令
git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master
推送最新修改;
# 从远程同步
git clone git@github.com:vi5i0n/gitskills.git
# 分支管理
创建dev分支,然后切换到dev分支(-b参数表示创建并切换):
$ git checkout -b dev
相当于:
$ git branch dev
$ git checkout dev
git branch命令查看当前分支:
$ git branch
切换回master分支:
$ git checkout master
合并到master分支上:
$ git merge dev
删除dev分支了:
$ git branch -d dev
小结 查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
# 解决冲突
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们手动修改
# 分支管理策略
个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
# bug修复
stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash
修复完了之后,
$ git stash list#查看
$ git stash pop
强行删除分支:
$ git branch -D feature-vulcan
# 多人协作的工作模式:
1.首先,可以试图用git push origin branch-name推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
# 自定义Git
$ git config --global color.ui true
自己定义的文件,最终得到一个完整的.gitignore文件,内容如下:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
用co表示checkout,ci表示commit,br表示branch:
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。既然是一个unstage操作,就可以配置一个unstage别名:
$ git config --global alias.unstage 'reset HEAD'
当你敲入命令:
$ git unstage test.py
实际上Git执行的是:
$ git reset HEAD test.py
配置一个git last,让其显示最后一次提交信息:
$ git config --global alias.last 'log -1'