安装git | |
sudo apt-get install git | |
创建版本库 | |
mkdir [文件夹] | |
cd [文件夹] | |
git init | |
创建文件 | |
touch [文件名] | |
cp [文件名] [版本库文件夹下的子目录或者根目录] | |
git add [文件名] #将文件从工作区加入到暂存库里面去 | |
git commit -m "修改信息" #将文件从暂存区加入到仓库 | |
版本回退 | |
git reset --hard HEAD^ #回到上一个版本 | |
git reset --hard [版本号id前4个数字] #回到相对应的版本 | |
git log #查看修改过的所有版本 | |
git reflog #查看记录的每一次命令 | |
git status #查看仓库文件信息 | |
管理修改 | |
git diff HEAD -- [文件名] #命令可以查看工作区和版本库里面最新版本的区别 | |
git checkout -- [文件名] #撤销工作区的修改 | |
git reset HEAD [文件名] #撤销暂存区的修改 | |
git reset --hard [版本号id前4个数字] #撤销仓库的修改 | |
删除文件 | |
rm [文件名] #从工作区删除 | |
git rm [文件名】#从仓库删除 | |
git commit -m "修改信息" #更新仓库 | |
添加远程库 | |
在github官网新建仓库,在本地仓库使用以下命令 | |
git remote add origin git@github.com:用户名/git仓库名.git #关联远程仓库 | |
第一次使用 | |
git push -u origin master #推送本地内容到远程仓库 | |
以后如果要同步远程仓库只需要使用 | |
git push origin master | |
git push origin [分支名] | |
远程仓库内容复制到本地 | |
git clone git@github.com:git用户名/仓库名.git | |
分支管理 | |
创建与合并分支 | |
Git鼓励大量使用分支: | |
查看分支:git branch | |
创建分支:git branch <name> | |
切换分支:git checkout <name> | |
创建+切换分支:git checkout -b <name> | |
合并某分支到当前分支:git merge <name> | |
删除分支:git branch -d <name> | |
解决冲突 | |
当创建新的分支后,如果master分支被更新,此时如果其他内容的分支要被同步到maser分支则需要切换到maseter分支再次将工作区的文件提交到仓库(git add git commit),这样两个分区的内容就被合并到一起了 | |
分支管理 | |
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息 | |
git merge --no-ff -m "merge with no-ff" dev #--no-ff表示禁用fast forward | |
bug分支 | |
git stash#可以把当前工作现场“储藏”起来,等以后恢复现场后继续工 | |
然后跳转到其他分支工作之后跳转回来 | |
git stash list#查看之前中断的现场到哪里去了 | |
git stash apply stash@{0} #恢复指定的中断现场,不删除stash | |
git stash drop #删除中断现场 | |
git stansh pop #恢复同时删除 | |
git branch -D <name> #强行删除未合并的分支 | |
多人协调工作 | |
查看远程库信息,使用git remote -v; | |
本地新建的分支如果不推送到远程,对其他人就是不可见的; | |
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; | |
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; | |
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; | |
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。 | |
打标签 | |
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id; | |
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息; | |
命令git tag可以查看所有标签。 | |
命令git push origin <tagname>可以推送一个本地标签; | |
命令git push origin --tags可以推送全部未推送过的本地标签; | |
命令git tag -d <tagname>可以删除一个本地标签; | |
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。 | |
github使用 | |
在GitHub上,可以任意Fork开源仓库; | |
自己拥有Fork后的仓库的读写权限; | |
可以推送pull request给官方仓库来贡献代码。 | |
配置别名 | |
格式如下 | |
git config --global alias.st status | |
git config --global alias.unstage 'reset HEAD' | |
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的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。 | |
配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中 |
git使用命令行归纳,总结自廖雪峰的git教程
最新推荐文章于 2024-06-28 17:33:13 发布