Git命令
-
git config --global user.name "yourname"
git config --global user.email "youremail"
这两句会帮你电脑的所有git项目都和你账号关联起来,当然你可以不要--global,就让当前项目和git关联起来 git init 新建.git到当前文件夹
git status 查看当前项目文件状态,有没有修改,有没有加入缓冲区等。
git clone xxx.git 克隆项目到本地
git add . 添加全部文件到缓存区
git commit -m "注释" 添加注释
git log 查看注释
git log --pretty=oneline 单行输出log
git push -u origin master 第一次提交项目的到远程仓库
git push origin master 再次提交项目代码到远程仓库上
git tag xx 给当前分支创建一个tag 以后就能退回到这个tag的代码了
git branch 查看当前分支 *master指向master分支
git branch a 创建 a分支
git checkout a 转到a分支
git branch -b a 创建并转到a分支
git branch -d a 删除a分支
git branch -D a 在没有合并分支代码到master代码,或者无法删除分支时,强制删除分支a
git merga 合并代码先转到master分支,再git merga a 的分支代码到master分支代码
-
git checkout tagname 让分支代码回到tag是tagname那时候的代码
更新时间 2016年10月18日16:44:56
git checkout -- readme.txt 文件没提交到缓冲区时,让readme.txt回到修改前。
git reset HEAD readme.txt 让提交文退出缓冲区,再执行git checkout -- readme.txt,回到修改前。
git remote add origin git@github... 添加文件夹到远程仓库
git merge --no-ff -m "merge with no-ff" dev 不删除dev分支,并把dev分支,合并到当前分支。
git reflog 查看全部历史commit信息
git reset --hard 63D232 回到 63D232 那一步
git stash 当你添加新功能一半时,要修补bug,你要想把dev分支保存起来,新增修复issure分支,合并到dev分支,在合并到master分支,最后了来到dev分支,把当时stash起来的 内容用git stash pop 恢复回来。
git remote -v 查看远程仓库的信息
git push origin branch-name 提交的到远程分支
git checkout -b branch-name origin/branch-name 创建远程分支。
git branch --set-upstream branch-name origin/branch-name 关联本地分支和远程分支
git pull 更新本地分支
创建tag 就是为了方便取出tag名的版本,实际是利用hard到特定的commit号,例如232EDE,分支是移动的 ,tag是不能移动的。
git tag 查看该分支的所有tag
给固定的commit id打上tag
首先用git log --pretty=oneline --abbrev-commit查看全部commit id
git tag v1.2 3622EE
git show v1.0 查看v1.0标签信息,包括commit id author
git tag -a <tagname> -m "tips" commit id 创建的标签都是在本地,不会自动推送的远程,
git tag -d v1.0 删除指定tag,先删除本地tag,再删除远程tag
git push origin v1.0 推送指定标签到远程
git push origin --tags 推送全部标签到远程
git push origin :refs/tags/v0.9
git clone git@github.com xxx.git 克隆远程仓库项目到本地、
git config --global color.ui true 界面文字多彩颜色
在项目根目录下编辑.gitignore文件,要忽略的文件放进去。一般是忽略程序编辑生产的文件,还有你不想提交远程仓库的文件
用SSH远程提交代码
打开git bash就是git自带的终端,输入ssh
Rc3@ppjun MINGW64 ~/Desktop
$ ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R address] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]``
这是代表你已安装ssh。
输入命令ssh-keygen -t rsa生成ssh密钥,连续按三个Enter
Rc3@ppjun MINGW64 ~/Desktop
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Rabbit/.ssh/id_rsa):
打开C:\Users\Rabbit.ssh 找到id_rsa.pub
复制里面的https://github.com/settings/keys 点击 new SSH key的key里面-保存。
最后输入ssh -T git@github.com,结果如下代表你添加好SSH到你git上面了。
Rc3@ppjun MINGW64 ~/Desktop
$ ssh -T git@github.com
Hi gdmec07120731! You've successfully authenticated, but GitHub does not provide shell access.
配置别名
--global是对用户所有项目生效
用例如以下的公式
git config --global alias.co checkout //用git co 代替 git checkout
git config --global alias.st status //用git st 代替 git status
git config --global alias.br branch
git config --global alias.cm 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"
//配置log
搭建远程GIT服务器
相当于github远程托管
强烈建议linux的机器,几条命令就可以搭建好了。
用apt-get下载git sudo apt-get install git
新增git用户 sudo adduser git
拿到所有登录用户的id_rsa.pub 公钥,放在/home/git/.ssh/authorized_keys文件夹里面
初始化git仓库,选定一个文件夹作为仓库文件夹比如GitRepository/sample,在GitRepository下输入sudo git init --bare sample.git