git 常见命令
GIT版本控制
git config --global user.name "lisi"
git config --global user.email "350866797@qqcom"
git init
git status
git add
git commit -m ""
git log
git log --pretty=oneline
git reflog
git reset --hard HEAD^^
git reset --hard HEAD^
git reset --hard dfq83khkad
,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
git diff file
如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:
git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别
git checkout -- a.txt 丢弃工作区的修改
git reset HEAD a.txt 把暂存区的修改撤销掉(unstage),重新放回工作区
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
rm del.txt
git status
--真删除
git rm del.txt
git commit -m "remove del.txt"
--误删
git checkout -- del.txt
配置git 方法===================================
创建SSH Key:配置ssh
ssh-keygen -t rsa -C "youremail@example.com"
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
填上任意Title,在Key文本框里粘贴id_rsa.pub
git remote add origin git@github.com:silvercell/testgit.git
git push -u origin master
第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样
git push origin master
---clone 远程
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
-----git分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
-----git 解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
git add git commit -m ""
用git log --graph命令可以看到分支合并图。
git log --graph --pretty=oneline --abbrev-commit
----- --no-ff merge
通常,合并分支时,如果可能,Git会用Fast forward模式,
但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
下面我们实战一下--no-ff方式的git merge:
git merge --no-ff -m "merge with no-ff" dev
git log --graph --pretty=oneline --abbrev-commit
----分支策略
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
https://segmentfault.com/q/1010000002477106
---修复bug
git stash
git stash list
git stash pop
git stash apply git stash drop
---删除分支
feature-vulcan分支还没有被合并,
如果删除,将丢失掉修改,如果要强行删除,
需要使用命令git branch -D feature-vulcan。
-- 多人协作
git remote git remote -v
git branch -a
git push origin master
git push origin dev
git pull
git branch --set-upstream dev123 origin/dev
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
--打标签
git tag
git tag v1.0 6224937
git show v1.0
命令git tag
git tag -a
git tag -s
命令git tag可以查看所有标签。
-- 标签提交到远程
命令git push origin
命令git push origin --tags可以推送全部未推送过的本地标签;
删除先本地删除然后远程删除
命令git tag -d
命令git push origin :refs/tags/
-- .gitignore
git add -f App.class
需要找出来到底哪个规则写错了,可以用git check-ignore命令检查
git check-ignore -v App.class
-- 配置别名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
每个仓库的Git配置文件都放在.git/config文件中
git config --global user.name "lisi"
git config --global user.email "350866797@qqcom"

浙公网安备 33010602011771号