git 常用命令
Windows git 初始化设置:
$ git config --global user.name "Firstname Lastname" $ git config --global user.email "your_email@example.com"
GitHub 上连接已有仓库时的认证。
$ ssh-keygen -t rsa -C "your_email@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): 按回车键 Enter passphrase (empty for no passphrase): 输入密码 Enter same passphrase again: 再次输入密码
生成秘钥和公钥:
Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa. Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub. The key fingerprint is: fingerprint值 your_email@example.com The key's randomart image is:
将公钥 ~/.ssh/id_rsa.pub 粘贴到:settings -> SSH and GPG keys -> New SSH Key ,保存即可。添加好后会收到一封邮件。
客户端连接GitHub仓库:
$ ssh -T git@github.com The authenticity of host 'github.com (207.97.227.239)' can't be established. RSA key fingerprint is fingerprint值 . Are you sure you want to continue connecting (yes/no)? 输入yes
然后就可以向仓库中提交代码了。
在 ~/.gitconfig 文件中:这个文件在 windows的用户目录中。
[user] name = Firstname Lastname email = your_email@example.com
Linux git 初始化:
~]# git config --global user.name "git账户名称" ~]# git config --global user.email "git上的注册邮箱" # 生成公私钥 ~]# ssh-keygen -t rsa -C "git上的注册邮箱" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. # 私钥路径 Your public key has been saved in /root/.ssh/id_rsa.pub. # 公钥路径 The key fingerprint is: 省略... qiqitao320@qq.com The key's randomart image is: +---[RSA 2048]----+ | | | . o +. E| | * . o.o. | | = O . .. | | # S . .. | | = O = . ... | | o = o..oo | | .o o*o+o | | .oo.+=B+. | +----[SHA256]-----+
把 /root/.ssh/id_rsa.pub 里面的内容放到 gitHub 上即可。
常用git命令:
本地初始化仓库并提交到gitHub:创建仓库时必须为一个空仓库
git init git add README.md git commit -m "first commit" git remote add origin git@github.com:xxx/xxx.git git push -u origin master
Git global setup:
git config --global user.name "qiyang" git config --global user.email "email@email.com"
Create a new repository:
git clone git@192.168.1.150:qiyang/demo.git cd demo touch README.md git add README.md git commit -m "add README" git push -u origin master
Push an existing folder:
cd existing_folder git init git remote add origin git@192.168.1.150:qiyang/demo.git git add . git commit -m "Initial commit" git push -u origin master
Push an existing Git repository:
cd existing_repo git remote rename origin old-origin git remote add origin git@192.168.1.150:qiyang/demo.git git push -u origin --all git push -u origin --tags
日志:
查看提交日志:到某个仓库目录下执行git log 即可看到提交的日志。
git log
显示短日志:只显示提交日志的第一行
git log --pretty=short
只显示指定文件的日志:
git log README.md
查看提交的改动信息:可以看到提交前后的区别
git log -p
查看具体文件的改动:
git log -p README.md
查看当前工作树与暂存区的差别:暂存区就是commit 了但是还没push 的文件。
git diff git diff README.md diff --git a/README.md b/README.md index 5ad28e2..05a98d5 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -haha +ha
查看本次提交与上次提交的区别:提交之前执行,HEAD 是指向当前分支中最新一次提交的指针。
git diff HEAD
分支
显示分支:
git branch
创建并切换到分支:
方法一:
git checkout -b demo-0.1
方法二:
$ git branch demo-0.1 #创建分支 $ git checkout demo-0.1 #切换到分支
查看当前所在分支:有 * 号的表示在当前分支。
]# git branch master * demo-0.1
可以切换到新分支添加内容提交后再到master分支上,master分支上的内容没有受到影响。
切换回上一个分支:“-”(连字符)
git checkout -
分支是用来开发某一个功能的,一个功能一个分支然后合并。
替换master分支:
git branch -m master 1.0 # 重命名老master分支 git push -f origin 1.0 # 分支同步到远程 git branch master # 创建新master分支 git checkout master # 切换到master分支 git push -f origin master # 修改或添加文件后上传新master分支
合并分支:
切换到要合并的分支:
git checkout master
创建合并提交:打开的编辑器保存即可,然后会自动合并。
git merge --no-ff demo-1.1
以图表的形式查看分支:
git log --graph
恢复到之前的分支:
git reset --hard 3444909135bce119e28531b9e8b712e16833001b
修改master分支:
删除远程分支:
git push origin --delete master
删除本地分支:
git branch --delete master
本地创建master分支并将远程1.0的分支作为本地master的内容:
git checkout -b master origin/1.0
将新的分支推送到远程:
git push origin master:master
重命名分支:
git branch -m oldbranch newbranch # 复制老分支到新分支 git push -f origin 2.0 # 推送新分支 git push -f origin master
推送到远程仓库:
将本地仓库推送到远程:要在远程建一个空仓库,没有任何文件。
echo "This is readme">> README.md git init git add README.md git commit -m "first commit" git remote add origin git@github.com:zhuqiyang/chuxiangyi.git git push -u origin master
.gitignore不起作用:
新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:
git rm -r --cached . git add . git commit -m 'update .gitignore'
commit id:获取提交ID
$ git rev-parse HEAD 3b592a040f5eeba919a355d00e71fd48888ac125 $ git rev-parse --short HEAD 3b592a04
git 设置代理:
www.cnblogs.com/mymelody/p/6132728.html
git创建分支:
查看远程分支:
git branch -r
查看所有分支:
git branch -a
重命名master分支为其他分支:
git branch -m master 0.1
创建master分支:
git branch master
推送分支:
git add --all git commit -m "change branch" git push origin 0.1 ... git push origin master
删除远程分支:
git 删除远程分支
查看远程分支:
git branch -a
删除远程分支:
git push origin --delete <branchName>