/ git

git

推荐使用 https 协议!
推荐使用 https 协议!
推荐使用 https 协议!

sudo yum install git -y

如果需要安装 git 2 以上的版本:https://stackoverflow.com/questions/21820715/how-to-install-latest-version-of-git-on-centos-7-x-6-x

常用操作

清理工作区:

git stash

撤销上一个提交:

git reset HEAD~

移除未暂存的文件

第一步 is to show what will be deleted by using the -n option:

git clean -n

然后执行删除文件的步骤(注意,删除要谨慎):

git clean -f
  • To remove directories, run git clean -f -d
  • To remove ignored files, run git clean -f -X
  • To remove ignored and non-ignored files, run git clean -f -x

初始化

sudo apt-get install git
git config --global user.name "your.name"
git config --global user.email "your_email@gamil.com"

这些配置信息将会添加进 ~/.gitconfig 文件中

我们将推荐使用 HTTPS 方法(另一个是 SSH),将你的代码推送到 Github 上的仓库。

如果你不想每次都输入用户名和密码的话,可以运行:

# osx
git config --global credential.helper osxkeychain
# windows 下让 Git 记住用户名密码(https) 仓库地址选用 https 协议
git config --global credential.helper wincred

create a new repository on the command line

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/haobingwang/test.git
git push -u origin master

push an existing repository from the command line

git remote add origin https://github.com/haobingwang/test.git
git push -u origin master

git 使用建议

  • 多建分支
  • 多提交
  • 少推送

https协议 和 git协议

以 gitlab 为例:在服务器上进行 git fetch 等操作时。

  • https 协议的仓库 url 作为远程仓库时会要求手动输入用户名和密码(只需输入一次)。
  • git 协议的仓库 url 作为远程仓库却不需要输入用户名和密码,只要添加了 ssh公钥。

搭建 git 服务器

  • 搭建 gitlab社区版

git 配置 ssh (不推荐使用,这里记录只是作为备用方案)

安装 git

# 学习git的时候, 大家刚开始使用之前都配置了一个全局的用户名和邮箱
git config --global user.name "github's Name"
git config --global user.email "github@xx.com"
git config --list

# 如果你公司的项目是放在自建的gitlab上面, 如果你不进行配置用户名和邮箱的话, 则会使用全局的, 这个时候是错误的, 正确的做法是针对公司的项目, 在项目根目录下进行单独配置
# 这里的配置是写到 .git/config 文件中的 user 块中
git config user.name "gitlab's Name"
git config user.email "gitlab@xx.com"
git config --list

配置 ssh

生成 ssh 密钥:

ssh-keygen -t rsa -C "email@email.com"

将公钥 id_rsa.pub 的内容添加到 coding,github,gitlab,然后测试

$ ssh -T git@github.com
Enter passphrase for key '/c/Users/bill/.ssh/id_rsa':
Hi bill! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@gitlab.com
Enter passphrase for key '/c/Users/bill/.ssh/id_rsa':
Welcome to GitLab, bill!

$ ssh -T git@git.coding.net
Enter passphrase for key '/c/Users/bill/.ssh/id_rsa':
Hello bill! You've connected to Coding.net via SSH successfully!

Adding your SSH key to the ssh-agent(配置不用每次输入密钥的密码):

# git-shell
$ eval $(ssh-agent -s)
Agent pid 7108

$ ssh-add id_rsa
Enter passphrase for id_rsa:
Identity added: id_rsa (id_rsa)

然后就可以对 git 开头的仓库地址进行 clone push 等操作了。

How to git clone from local bare repository

git clone /path/to/bare.git /path/to/new_destination