Upload project (files and directory) in an exist empty repository

سناریو اول

  • فرض کنید یک مخزن (مثلا با نام projectX) موجود است. (قبلا ساخته شده است.)
  • فرض کنید این مخزن فاقد هرگونه فایل و … است.
  • فرض کنید بر روی پروژه‌ی مورد نظر کار کردید و حالا می‌خواهید این پروژه را درون این مخزن قرار دهید.
  • برای این منظور :
root@homayouni:~# mkdir /tmp/test/
root@homayouni:~# cd /tmp/test/

root@homayouni:/tmp/test# git config --global user.name "iman homayouni"
root@homayouni:/tmp/test# git config --global user.email "homayouni.iman@gmail.com"
root@homayouni:/tmp/test# git clone git@gitlab.example.com:iman/projectX.git
Cloning into 'projectX'...
warning: You appear to have cloned an empty repository.

root@homayouni:/tmp/test# cd projectX
root@homayouni:/tmp/test/projectX# cp -ra /root/projectX/* .
root@homayouni:/tmp/test/projectX# git add *
root@homayouni:/tmp/test/projectX# git commit -m "add All Files to repo"
[master (root-commit) bbfaa78] add All Files to repo
1 file changed, 4 insertions(+)
create mode 100755 scriptX.sh

root@homayouni:/tmp/test/projectX# git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 254 bytes | 254.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To gitlab.example.com:iman/projectX.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

سناریو دوم

  • فرض کنید یک سورس کد در اختیار دارید که آماده‌ی استفاده است.
  • فرض کنید مخزنی با نام پروژه ندارید و میخواهید سورس پروژه را داخل مخزن قرار دهید. (یعنی مخزنی نیز با نام پروژه ساخته شود.)
  • برای این منظور ابتدا وارد دایکتوری پروژه شوید :
root@homayouni:~# cd /root/projectI/
  • دستور زیر را اجرا کنید :
root@homayouni:~/projectI# git init
  • یک مخزن با نام projectI ایجاد نمایید.
root@homayouni:~/projectI# git remote add origin git@gitlab.example.com:iman/projectI.git
  • تمام پرونده‌ها و دایکتوری‌ها را add نمایید.
root@homayouni:~/projectI# git add .
  • یک کامیت برای تمامی پرونده‌هایی که add کردید، در نظر بگیرید.
root@homayouni:~/projectI# git commit -m "Initial commit"
[master (root-commit) 238b2f0] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 projectI.txt
  • در نهایت داخل مخزن projectI و شاخه‌ی master آپلود (push) نمایید.
root@homayouni:~/projectI# git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 226 bytes | 113.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: 
remote: The private project iman/projectI was successfully created.
remote: 
remote: To configure the remote, run:
remote: git remote add origin git@gitlab.example.com:iman/projectI.git
remote: 
remote: To view the project, visit:
remote: http://gitlab.example.com/iman/projectI
remote: 
remote: 
remote: 
To gitlab.example.com:iman/projectI.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

سناریو سوم

  • فرض کنید یک مخزن با نام ProjectX موجود است.
  • سورس داخل این مخزن درون شاخه‌ی master قرار گرفته و در حال stable است. یعنی سورس برنامه بدون مشکل کار می‌کند.
  • حال فرض کنید قصد گرفتن سورس را دارید تا بر روی آن کار کنید و یک سری قابلیت به آن اضافه کنید.
  • برای این منظور ابتدا یک clone از آن دریافت نمایید :
root@homayouni:~# git clone http://gitlab.example.com/iman/projectx.git
Cloning into 'projectx'...
Username for 'http://gitlab.example.com': iman 
Password for 'http://iman@gitlab.example.com': 
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (8/8), 632 bytes | 70.00 KiB/s, done.
  • یک شاخه با نام unstable ایجاد می‌کنیم.
root@homayouni:~/projectx# git branch unstable
  • برای مشاهده‌ی شاخه‌های موجود :
root@homayouni:~/projectx# git branch 
* master
unstable
  • برای تغییر شاخه‌ی از master به unstable :
root@homayouni:~/projectx# git checkout unstable
Switched to branch 'unstable'
  • حال بر روی سورس کار کنید.
  • حال پرونده‌ها را Add کنید.
root@homayouni:~/projectx# git add *
  • برای آن یک کامیت در نظر بگیرید.
root@homayouni:~/projectx# git commit -m 'changing main source'
[unstable 18de532] changing main source
2 files changed, 2 insertions(+), 17 deletions(-)
  • در نهایت داخل شاخه‌ی unstable پوش نمایید :
root@homayouni:~/projectx# git push origin unstable 
Username for 'http://gitlab.example.com': iman
Password for 'http://iman@gitlab.example.com': 
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 529 bytes | 132.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for unstable, visit:
remote: http://gitlab.example.com/iman/projectx/-/merge_requests/new?merge_request%5Bsource_branch%5D=unstable
remote: 
To http://gitlab.example.com/iman/projectx.git
* [new branch] unstable -> unstable
  • حال برای دیدن سورس stable کافیست که شاخه را عوض کنید.
root@homayouni:~/projectx# git checkout master 
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
  • حال داخل ورژن stable سورس هستید ! میتوانید دوباره به ورژن unstable سورس برگردید.
root@homayouni:~/projectx# git checkout unstable 
Switched to branch 'unstable'

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *