git命令笔记

0、git管理的是修改而不是文件!git

一、在 git Bash 上设置用户名和emailgithub

git config --global user.name "Cai"
git config --global user.email "你的邮箱"
查看:git config --list

二、在空白目录 “test” 下建立git仓库,(test文件夹就是工做区)shell

git init

三、将仓库目录下的文件 test.txt 添加到暂存区缓存

git add test.txt
git add .    //添加所有到暂存区

四、将暂存区下的文件提交到当前分支bash

git commit -m "提交的描述"

五、查看仓库中文件的状态: 是否有文件改动了、是否有 add 过的文件服务器

git status

六、查看文件具体修改的内容app

git diff test.txt

七、当前版本出错,想要版本回退时从版本日志中寻找合适的版本,打印版本日志:ssh

git log

八、回退到以前的版本fetch

git reset --hard HEAD^        //回退到前一个版本
git reset --head 1094a        //根据commit id回退到指定版本(commit id写前几位就好)
git reset --hard HEAD~10        //HEAD~后面的数字10表示回退到上十个版本

九、回退到以前版本后后悔了,再变回来必须知道该版本的commit id网站

git reflog    //查看命令记录
git reset --hard 1094a    //回退到指定版本
cat test.txt    //查看该文件内容

十、撤销工做区的修改(没有添加到暂存区)

git checkout -- test.txt    //撤销对test.txt的修改

十一、撤销暂存区的修改

git reset HEAD test.txt    //撤销对暂存区中test.txt的修改

十二、从版本库中删除文件

git rm test.txt
git commit -m "删除了test.txt文件"
若是误删:git checkout -- test.txt    //还原

1三、如何将本地git仓库上传至GitHub

一、打开GitBash输入: ssh-keygen -t rsa -b 4096 -C "邮箱@qq.com"    //生成公钥和私钥(cat 目录 复制)
二、登陆你的GitHub,并在设置中添加 SSH keys ,放入公钥。
三、在GitHub中新建一个空仓库,仓库建好后能够选择其列出的第二项推送本地仓库的方式。
四、详细参考连接: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000

1四、多人协做时从GitHub远程库克隆仓库

git clone git@github.com:GithubName/test.git

1五、多人协做时,采用分支管理: 建立不一样的分支,每一个人在不一样的分支上工做,最后合并分支。

git branch    //查看分支
git branch name    //建立分支
git checkout name    //切换分支
git checkout -b name    //建立并切换分支
git branch -d name    //删除分支(只能删已完成合并的分支)
git branch -D name    //强行删除分支(删未合并的分支)
git merge name    //合并 name 分支到当前分支
git merge --no-ff -m "这里合并了dev分支" dev    //使用普通模式合并分支,使其有据可查
git log    //查看分支历史
//同一段内容在不一样分支上不一致时没法合并分支,先解决冲突后再合并,而后删除建立的分支
//master分支是主分支,一般不直接在主分支上修改,而仅用来发布新版本
//可建立一个dev分支,全部人都在dev分支上建立本身的分支,全部修改都提交到dev分支,最终将dev分支做为新版本提交到master分支

1六、暂存未完成修改的分支

git stash    //工做只进行到一半无法提交时,先把工做现场存起来,下次再作
git stash list    //查看保存的工做区列表
git stash pop    //恢复工做区并删除暂存的stash
git stash apply    //恢复工做区,不删stash
git stash drop    //删除stash
//好比是在dev分支上建立的工做分支,则到dev分支上恢复工做区

1七、多人协做时,使用远程分支

git remote    //查看远程库,能够看到远程库名字,默认名:origin
git remote -v    //查看远程库详细信息,显示能够抓取和推送的origin的地址
git push origin master    //推送本地主分支(master)到远程分支(origin)
git push origin dev    //推送本地开发分支(dev)到远程分支
//一般须要推送主分支和开发分支到远程分支中,而每一个人基于开发分支本身建立的工做分支,视状况推送。

抓取远程分支时,只能clone主分支master,若是要在dev分支工做就须要建立远程dev分支到本地
git checkout -b dev origin/dev    //在本地建立远程的dev分支,而后就能够在dev分支建立本身的工做分支了
git push origin dev    //时不时推送dev分支到远程

1八、若是向远程分支推送失败

//若是推送失败,由于你试图推送的提交与你的小伙伴的提交冲突了。
git pull    //把最新的提交抓下来,而后在本地合并,解决冲突后再推送
git branch --set-upstream-to=origin/dev dev    //若是git pull 失败,可能忘了设置dev分支与远程dev分支的连接
// 再git pull ,而后推送,合并分支

1九、标签管理

//为了方便管理,能够为每次提交打一个标签,好比版本号
git tag v1.0    //为当前分支建立标签
git tag    //查看全部标签
git tag v0.9 0536a    //若是忘了打标签,能够指定使用git log查到该分支版本的 commit id 打标签
git show v1.0    //显示标签信息
git tag -a v1.0 -m "标签描述" 03366b    //建立带说明的标签

//标签都是建立在本地的,不会自动推送到远程
git tag -d v1.0    //删除本地标签
git push origin v1.0    //推送一个标签到远程
git push origin --tags    //推送全部本地标签到远程
git push origin :refs/tags/v1.0    //删除远程标签   
git push --delete origin test    //删除远程分支

20、使用码云

//码云是国内的Git托管服务平台,和Git不一样的是码云能够提供免费的私有仓库,而Git的私有仓库是收费的。
//和GitHub同样,注册码云并添加公钥后在码云建立一个项目,而后使用下面的命令关联码云的远程库
git remote add gitee git@gitee.com:cai/testgit.git    //注意码云的远程库是 gitee 而不是origin(可使用 git push gitee master 推送了)
git remote -v    //查看远程库信息
git branch -r    //查看远程分支
git branch -vv    //查看本地分支所关联的远程分支
git branch -m old new    //重命名本地分支
git remote rm origin    //删除origin远程库(origin是GitHub的远程库)
git remote add github git@github.com:OnlyChangeMyself/test.git    //从新关联GitHub的远程库,此时GitHub的远程库叫github了而不是origin(可使用git push github master)

2一、配置别名

git config --global alias.sta status    //使用git sta就等于git status了
git config --global alias.cmt commit    //git cmt等于git commit
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 lg

2二、搭建Git服务器

//其实就是搭建私有仓库
//推荐使用Linux服务器如Ubuntu或Debian
//假设你有sudo权限的帐号
第一步:sudo apt-get install git    //安装Git
第二步:sudo adduser git    //建立一个Git用户,用来运行Git服务
第三步:建立证书登陆:///收集全部须要登陆的用户的公钥,就是他们本身的id_rsa.pub文件,把全部公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
第四步,初始化Git仓库://先选定一个目录做为Git仓库,在该目录下输入命令(好比目录:/srv):
sudo git init --bare sample.git
sudo chown -R git:git sample.git
第五步:禁用shell登陆,经过编辑/etc/passwd文件完成
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
第六步,克隆远程仓库:
git clone git@server:/srv/sample.git

2三、参考自

[廖雪峰的官方网站][1]

2四、抓取远程分支覆盖本地分支

git fetch --all 
git reset --hard origin/master

2五、修改gitignore配置文件后生效方法

git rm -r --cached .    //清除缓存
git add .
git commit -m "提交描述"
git push origin master    //提交到远程
相关文章
相关标签/搜索