1.基本操作
1.克隆操作
git clone http://xxx.xxx.xxx.xxx:端口号/路径/xxx.git
2.检查状态
git status
3.通过上面的命令可以modified到离上一次更新做了哪些修改
4.把文件修改添加到暂存区
git add <文件路径/文件名>
这里的<>里面的就是modified后面的
5.如果无视.DS_Store
的话,还可以直接使用
git add .
- 提交修改,其中xxx为本次修改的提示语
git commit -m'xxx'
7.拉取git版本库里面最新的代码
git pull
8.build一下 ,检查是否有冲突。如果没有冲突直接跳到9。
如果有冲突的话,会报error,代码会是这个样子:
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1
其中HEAD和=======之间的代码是版本库里面的代码,=======和>>>>>>>之间是本地的代码。看情况修改。
9.把本地代码推送到版本库
git push
这样,一次版本控制操作就基本完成了。
2.忽略 .DS_Store
每一次都要忽略.DS_Store而不能直接用git add.
简直不能忍,所以,决定使用全局忽略的方法,在本机上无论新建什么工程都能完美忽略.DS_Store
1.先清空缓存,避免被添加到git里面。进入到工程目录下,进行:
git rm -r --cached .DS_Store
2.进入本机根目录并创建.gitignore_global
cd ~
touch .gitignore_global
3.编辑.gitignore_global
vi .gitignore_global
# .gitignore_global
####################################
######## OS generated files ########
####################################
.DS_Store
.DS_Store?
#*.swp
#._*
#.Spotlight-V100
#.Trashes
#Icon?
#ehthumbs.db
#Thumbs.db
####################################
############# packages #############
####################################
#*.7z
#*.dmg
#*.gz
#*.iso
#*.jar
#*.rar
#*.tar
#*.zip
4.在~/.gitconfig中引入.gitignore_global
还是在根目录下,进行:
vi .gitconfig
在[user]下面,加入:
[core]
excludesfile =/Users/本机名/.gitignore_global
好了,现在随便进入一个工程,再随便修改其中一个文件,在终端使用git status
,就可以发现,讨厌的 .DS_Store不见了,就可以愉快的使用git add .
啦。
3.更换git关联路径
场景:从公司的git工作区export出一个公版,需要新建仓库作为新客户案的时候
git remote remove origin
git remote add origin http://192.168.0.0:xxx.git
git push -u origin master
4.查看git config
git config --list
5.当你不小心在master或者develop分支上写了代码
正常来说,master分支是线上代码不能随意修改的,而develop分支是是共同开发状态的,我们开发一般都是从develop分支上开分支出去进行开发,但是有时候脑子不清醒,直接在本地的master或者develop上写了代码,好的很开心的写了一天,然后下班前准备提交,傻眼了。直接push肯定是被不行的,怎么办?但是写了一天的代码又不能这样放弃了。
假如你是在develop上写了代码,先cd进入工作目录,然后执行:git stash
,这时候缓存起你在develop上所有的修改,并且你的develop分支会会恢复到没有被修改过的状态。此时,你再新建一个分支:git branch BRANCHNAME
,然后再执行git stash apply
,这样你之前在develop上写的代码就会转移到新的分支上了。
详细用法见:Git 工具 - 储藏(Stashing)
6.当git报“Git HEAD detached from XXX”时
最近,我在写代码时,想找回前几次提交的代码,里面有一些被删除了的代码想重新拿回来用,于是就用了git checkout xxx(某一次commit的id)
,好的我找到了旧代码。然后我又开始写了,这时问题来了,这样会开一个匿名的分支,而且你在这个分支上的push是无效的,终端上也会报“Git HEAD detached from XXX”。
解决方案:我们直接新建一个分支:git branch -b BANCHNAME
,这样就保存了匿名分支,这样我们再回到我们正在开发的分支上,并且merge后push,最后再删除临时创建的分支。
7.修改某一次提交信息
git commit --amend
8.删除远程分支
git push origin --delete xxx
9.切换远程分支
git checkout -b 本地分支名x origin/远程分支名x
10. 移除无效远程关联分支
git remote prune origin