Git 全局设置:
git config --global user.name "wang84" git config --global user.email "18736058425@163.com"
创建 git 仓库:
mkdir learngit cd learngit git init touch README.md git add README.md git commit -m "first commit" git remote add origin git@gitee.com:wang84/learngit.git git push -u origin "master"
已有仓库?
cd existing_git_repo git remote add origin git@gitee.com:wang84/learngit.git git push -u origin "master"
git command
有origin trunk两个仓库,从trunk获取一个分支的代码
1. git fetch trunk dev
wang@ubuntu:~/Desktop/learngit$ git fetch trunk
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 474 bytes | 118.00 KiB/s, done.
From gitee.com:eric8425/learngit
* [new branch] dev -> trunk/dev
* [new branch] master -> trunk/master
wang@ubuntu:~/Desktop/learngit$ git checkout dev
error: pathspec 'dev' did not match any file(s) known to git
hint: 'dev' matched more than one remote tracking branch.
hint: We found 2 remotes with a reference that matched. So we fell back
hint: on trying to resolve the argument as a path, but failed there too!
hint:
hint: If you meant to check out a remote tracking branch on, e.g. 'origin',
hint: you can do so by fully qualifying the name with the --track option:
hint:
hint: git checkout --track origin/<name>
hint:
hint: If you'd like to always have checkouts of an ambiguous <name> prefer
hint: one remote, e.g. the 'origin' remote, consider setting
hint: checkout.defaultRemote=origin in your config.
wang@ubuntu:~/Desktop/learngit$ git checkout --track trunk/dev
Branch 'dev' set up to track remote branch 'dev' from 'trunk'.
Switched to a new branch 'dev'
wang@ubuntu:~/Desktop/learngit$ git branch
* dev
master
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:dev
modified
wang@ubuntu:~/Desktop/learngit$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:master
wang@ubuntu:~/Desktop/learngit$ git fetch trunk dev
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 241 bytes | 120.00 KiB/s, done.
From gitee.com:eric8425/learngit
* branch dev -> FETCH_HEAD
* [new branch] dev -> trunk/dev
wang@ubuntu:~/Desktop/learngit$ git checkout --track trunk/dev
Branch 'dev' set up to track remote branch 'dev' from 'trunk'.
Switched to a new branch 'dev'
wang@ubuntu:~/Desktop/learngit$ git branch
* dev
master
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:dev
modified
wang@ubuntu:~/Desktop/learngit$
2. git checkout -b dev origin/dev
wang@ubuntu:~/Desktop$ git clone git@gitee.com:wang84/learngit.git
Cloning into 'learngit'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.
wang@ubuntu:~/Desktop$ git remote add trunk git@gitee.com:eric8425/learngit.git
fatal: not a git repository (or any of the parent directories): .git
wang@ubuntu:~/Desktop$ cd learngit/
wang@ubuntu:~/Desktop/learngit$ git remote add trunk git@gitee.com:eric8425/learngit.git
wang@ubuntu:~/Desktop/learngit$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
wang@ubuntu:~/Desktop/learngit$ git fetch trunk
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 474 bytes | 79.00 KiB/s, done.
From gitee.com:eric8425/learngit
* [new branch] dev -> trunk/dev
* [new branch] master -> trunk/master
wang@ubuntu:~/Desktop/learngit$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
remotes/trunk/dev
remotes/trunk/master
wang@ubuntu:~/Desktop/learngit$ git checkout -b dev origin/dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
Switched to a new branch 'dev'
wang@ubuntu:~/Desktop/learngit$ git branch
* dev
master
wang@ubuntu:~/Desktop/learngit$ cat dev
cat: dev: No such file or directory
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:dev
wang@ubuntu:~/Desktop/learngit$ git pull trunk dev
From gitee.com:eric8425/learngit
* branch dev -> FETCH_HEAD
Updating 43a0223..01aa00e
Fast-forward
redme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:dev
modified
3. git clone -a SSH
wang@ubuntu:~/Desktop$ git clone -b dev git@gitee.com:wang84/learngit.git
Cloning into 'learngit'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.
wang@ubuntu:~/Desktop$ git branch -a
fatal: not a git repository (or any of the parent directories): .git
wang@ubuntu:~/Desktop$ cd learngit/
wang@ubuntu:~/Desktop/learngit$ git branch -a
* dev
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
wang@ubuntu:~/Desktop/learngit$ cat redme.md
git 主仓库:dev