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>